class ArrayTest { public static void main(String[] args) { // toHex(0); toBinary(-6); System.out.println(Integer.toBinaryString(-6)); // toOctal(60); } /* 十进制-->十六进制。 */ public static void toHex(int num) { trans(num,15,4); } /* 十进制-->八进制。 */ public static void toOctal(int num) { trans(num,7,3); } /* 十进制-->二进制。 */ public static void toBinary(int num) { trans(num,1,1); } /* 进制转换功能。 */ public static void trans(int num,int base,int offset) { if(num==0) { System.out.println("0"); return ; } //必须先将十六进制的元素进行存储。 char[] chs = {'0','1','2','3' ,'4','5','6','7' ,'8','9','A','B' ,'C','D','E','F'}; //定义一个临时容器,用于存储查到的结果。 char[] arr = new char[32]; int pos = arr.length; while(num!=0) { int temp = num & base; // System.out.print(chs[temp]); arr[--pos] = chs[temp]; num = num >>> offset; } // System.out.println("pos="+pos); for(int x=pos; x<arr.length; x++) { System.out.print(arr[x]); } System.out.println(); } }
楼主的代码错了 |