我最近在如何完成此代码方面获得了帮助,但是我又遇到了另一个巨大的错误,我不知道如何修复。它告诉我使用数字变量,但我在第一行代码之一。你能帮忙吗?谢谢!
public static int binToDec(int i)
{
int[] numbers;//initialize variable
int f = 4;
String iString = "" + i;
int result = 0;
int length = iString.length();
int power;
for(power = iString.length(); power>=0;power--)
{
while(f == length && f >= 0)
{
numbers[power] = iString.charAt(power)^power;
}
length--;
f--;
}
for(int g = 0; g <= numbers.length; g++)//double check constraints
{
result = numbers[g] = numbers[power];
}
return result;
}
答案 0 :(得分:1)
您收到错误,因为已声明数字但尚未初始化。尝试
numbers = new int [length];
设定长度后。
答案 1 :(得分:0)
您可以使用Integer.parseInt(binaryNumber, 2)
方法将任意二进制数直接转换为十进制数,其中二进制为String
。
使用此代码,可以更有效地将二进制数转换为十进制数。
public static int binaryToDecimal(String binary) {
int decimal = 0;
for (int i = 0; i < binary.length(); i++) {
int digit = new Integer(binary.charAt(binary.length() - i - 1) + "");
decimal += digit * Math.pow(2, i);
}
return decimal;
}