繁体   English   中英

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

[英]Decimal to Hex Conversion (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语句中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM