我正在尝试编写一个程序,将十进制转换为二进制,十进制转换为八进制。 我可以从十进制转换为二进制,但从十进制到八进制它只是不起作用。
import java.util.*;
public class RadixConversion
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number: ");
int number = scan.nextInt();
System.out.println("Convert to base: ");
String letter = scan.next();
if (letter.equals("b")||letter.equals("B"))
{
int remainder = 0;
for (int i = 1; number > 0; i++)
{
number /= 2;
remainder = number % 2;
System.out.print(remainder);
}
}
else if (letter.equals ("o") || letter.equals ("O"))
{
int remainder = 0;
for (int i = 1; number >0 ; i++)
{
number /= 8;
remainder = number % 8;
System.out.print(remainder);
}
}
}
}
答案 0 :(得分:0)
我学习它的方式有点复杂。您必须找到适合该数字的8的最大功率,查看它进入该数字的次数,并以下一个最低功率8重复该过程。您可以随时打印每个数字。
答案 1 :(得分:0)
没有人看起来正在生成正确的值,0和1的情况就不那么明显了。您正在丢弃第一个数字并以相反的顺序打印数字(首先打印一个数字)
int remainder = 0;
String result = "";
for (int i = 1; number >0 ; i++)
{
remainder = number % 8;
result = remainder + result; // remainder first puts the digits in the right order
number /= 8;
}
System.out.print(result);