基础10到基础2,8,16转换java

我在这个面向对象的课程,但我只是不知道如何做到这一点。 我知道基本的基本原理但不是这样的。 我被要求创建一个程序,将#的基数10转换为基数2,基数8和基数16.然后,在我们被要求将其从2,8,16转换回基数10.之后我收集了一些信息从其他网站,我实际上最终编辑了一点。 请帮忙! 我更喜欢它,如果你们真的帮助和编辑自己并将它发送给我,但如果这太多了,请尽量引导我,因为我不太了解Java。 到目前为止我有:

import java.util.Scanner; public class baseconverterr { public static void main(String[] args) { // Read the conversion choice from the user System.out.println("Choose 1 or 2 or 3:"); System.out.println("1: conversion from base 10 to base 2 "); System.out.println("2: conversion from base 10 to base 8"); System.out.println("3: conversion from base 10 to base 16"); // do you want 1, 2 , or 3? you have your choice Scanner in = new Scanner(System.in); int choice = in.nextInt(); String string = in.nextLine(); // Read in the number to be converted and do the conversion String output= ""; System.out.println("Please enter the number to be converted:"); int input = in.nextInt(); if (choice == 1) // if the user chooses choice #1, it will convert from base 10 to base 2 output = Integer.toString(input, 2); else if (choice == 2) output = Integer.toString(input, 8); // if the user chooses choice #2, it will convert from base 10 to base of 8 else if (choice == 3) output = Integer.toString(input, 16); // if the user chooses choice #3, it will convert from base 10 to base 16 else System.out.println("invalid entry"); // everything else, it is invalid System.out.println("final output=" + output); // this prints the final output. 

对于十进制x(基数10),您可以分别使用二进制,八进制,hex转换

Integer.toString(x, 2)

Integer.toString(x, 8)

Integer.toString(x, 16)

然后将它转换回十进制,分别从二进制,八进制,hex转换

Integer.valueOf(binary_value, 2)

Integer.valueOf(octal_value, 8)

Integer.valueOf(hex_value, 16)

在您的代码中,更改以下内容:

 output = Integer.toString(input, 16) //replace 16 for hex, 8 for octal, 2 for binary 

用这个

  if (choice == 1) output = Integer.toString(input, 2); else if (choice == 2) output = Integer.toString(input, 8); // if the user chooses choice #2, it will convert from base 10 to base of 8 else if (choice == 3) output = Integer.toString(input, 16); else System.out.println("invalid entry");