我正在编写一个程序来将用户输入的整数打印成二进制形式。当我运行它并输入数字 5 时,它崩溃并给我错误:
java.lang.ArrayIndexOutOfBoundsException: 30 at PrintBinaryDigitsFixed.main(PrintBinaryDigitsFixed.java:27) 即行“digits[counter] = number % 2 ;"
为什么我会出现越界异常?它应该将剩余部分分配给第一个元素,然后再转移到第二个元素,不是吗?
我觉得我犯了一个明显的错误,但我不知道它是什么
final int MIN = 0;
final int MAX = (int) (Math.pow(2, 30) - 1);
int[] digits = new int[30]; //array to hold the digits
int number = readInput
("Enter an integer from " + MIN + " to " + MAX, MIN, MAX);
int counter = 0;
int modNumber = 2;
while(modNumber / 2 != 0)
{
digits[counter] = number % 2;
modNumber = number / 2;
counter++;
}
System.out.print(number + " in binary form is ");
listBackwardsFrom(digits, counter);
谢谢