【发布时间】: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”。除了;我假设这是某种任务;所以这样做是可以的;但对于“现实世界”的使用......您可以使用各种内置函数,将字符串转换为任意数字。
-
我知道这些代码约定,但我不会将它们用于我的私人程序,因为我(唯一一个)正在阅读它们。这就像在等待
-
仍然:遵循约定。假设您在某个时候与人们共享代码......为什么您要练习一些您不应该使用的东西呢?编程风格很大程度上是关于“被习惯”的东西。为什么要让自己习惯“坏习惯”?
-
养成好习惯。当您在此处发布代码时,您不再是唯一一个阅读它的人......
-
好的,好的,我会保持良好的习惯。