今天看了视频,用制表转换进制,方法蛮简单,为了自己习惯,我编写的程序和老毕的有点点同,在转换正数时候都OK,负数时候就有错误。dos错误显示如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Change.toBin_2(Change.java:100)
at Change.main(Change.java:5)
我的程序如下:
public static void toBin_2(int num)
{
//制表
char[] chs={'0','1'};
//定义一个临时数组
char[] arr=new char[32];
int pos=arr.length-1; 此处我将指针初始就在最高位,视频中是定义的pos=arr,length;
while(num!=0)
{
{
int temp = num&1;
arr[pos--] = chs[temp]; 视频中是arr[--pos]
num = num>>>1;
}
}
//将存储好的数据遍历打印出来
for (int x=pos;x<arr.length ;x++ )
{
System.out.print(arr[x]);
}