【发布时间】:2019-09-26 12:34:24
【问题描述】:
此方法的目的是将提供的二进制数字(作为字符串)转换为十进制数,但我没有得到问题想要的结果,例如convertToDecimal("01101011") = 107,我是我不确定我相信我将二进制转换为十进制数。
例如:
测试
System.out.println(convertToDecimal("11001101")); = 205
我尝试了一个while循环并创建了整数,但它只是没有给我相同的结果
public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
int currentIndex = binary.length() - 1;
while (currentIndex>=0) {
int currentDigit = binary.charAt(currentIndex) - '0';
decimal += currentDigit * Math.pow(2, power);
power++;
currentIndex--;
}
return decimal;
}
我期望的输出是:
convertToDecimal("01101011") = 107
convertToDecimal("00001011") = 11 ,
System.out.println(convertToDecimal("11001101")); = 205
但没有一个是对的
【问题讨论】:
-
你实际上得到了什么?如果我们要帮助您,我们也需要看到这一点。谢谢。
-
你能添加你得到的结果吗?
-
你应该得到你所期望的:107、11、205
-
你的函数被称为
binaryToDecimal,但你正在调用convertToDecimal。这是复制粘贴错误还是您调用了错误的方法? -
好的,它现在真的可以工作了,我不知道为什么它以前不能工作,代码是正确的,感谢大家的帮助。我是这个网站的新手,所以我应该删除这篇文章还是继续保留它,因为它是正确的?