十进制转换为十六进制的转换(Java)的
问题描述:
我写了下面的代码将十进制转换为十六进制:十进制转换为十六进制的转换(Java)的
System.out.println("The decimal number you enter will be converted to its hexadecimal equivalent.");
System.out.println("Please enter a decimal number: ");
Scanner keyboard = new Scanner(System.in);
int dec = keyboard.nextInt();
int input = dec;
String hex = "";
char dig[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
while(dec > 0)
{
input = dec%16;
hex = dig[input] + hex;
dec = dec/16;
}
System.out.println("The decimal number you entered, " + input + " is " + hex + " in hexadecimal.\n");
转换工作完美,但输出,具体在哪里,小数点输入应该是不正确的。我明白这是因为我正在修改while循环中的值,并且我确信这是一个简单的修复方法,但我不能在我的生活中弄清楚如何在大部分时间保留代码,它是并显示输入的原始十进制值。微调(我不是在寻找答案)在正确的方向将不胜感激。
答
您在计算过程中修改了input
,因此它不再代表输入内容。保留用户输入的其他变量不会被修改,并在println
声明中使用它。
谢谢!我刚刚在origDec = dec中创建并在System.out.println中使用它。谢谢你的建议! – user3727648 2014-09-05 23:46:39