十进制到十六进制转换(Java)

时间:2014-09-05 23:36:45

标签: java hex decimal

我编写了以下代码将十进制转换为十六进制:

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循环中的值,我确信它是一个简单的修复,但我不能为我的生活弄清楚如何保持代码,在大多数情况下,方式它是并显示输入的原始十进制值。我们非常感谢你向正确方向轻推(我不是在寻找答案)。

1 个答案:

答案 0 :(得分:0)

您在计算过程中修改了input,因此它不再代表输入的内容。保留另一个变量,用于输入的用户不会被修改,并在println语句中使用它。