【问题标题】:Hexadecimal to decimal in JavaJava中的十六进制转十进制
【发布时间】:2015-10-25 13:54:00
【问题描述】:

我的错误在哪里?

结果通常是 48 到高。对于 0 情况,我将添加一个 If 语句。如果可能的话,我希望两个循环都呆在一起:)

public static int HexadecimalToDecimal(String hex1) {

        char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

        int intCache = 0;
        int runner = 0;
        int help = 0;
        int number = 0;

        for (int i = hex1.length(); i > 0; i--) {


            while (hex1.charAt(i - 1) != hex[help]) {
                help++;
                number = hex[help];
            }
            intCache += number * (Math.pow(16, runner));
            runner++;
        }

        return intCache;

    }

【问题讨论】:

  • 附注:方法名称以小写开头,并且它们的名称应该围绕“动词”,例如“retrieveValueFromHexString”。除了;我假设这是某种任务;所以这样做是可以的;但对于“现实世界”的使用......您可以使用各种内置函数,将字符串转换为任意数字。
  • 我知道这些代码约定,但我不会将它们用于我的私人程序,因为我(唯一一个)正在阅读它们。这就像在等待
  • 仍然:遵循约定。假设您在某个时候与人们共享代码......为什么您要练习一些您不应该使用的东西呢?编程风格很大程度上是关于“被习惯”的东西。为什么要让自己习惯“坏习惯”?
  • 养成好习惯。当您在此处发布代码时,您不再是唯一一个阅读它的人......
  • 好的,好的,我会保持良好的习惯。

标签: java hex decimal


【解决方案1】:

当你跑步时

            number = hex[help];

数字被分配了字符值 ('0'),而不是数字值 0。'0' 的字符值是 48。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 2018-07-26
    • 2017-10-06
    • 2015-04-21
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多