十进制转换为十六进制的转换(Java)的

十进制转换为十六进制的转换(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声明中使用它。

+0

谢谢!我刚刚在origDec = dec中创建并在System.out.println中使用它。谢谢你的建议! – user3727648 2014-09-05 23:46:39