2,8,16进制每位最小表示是0,最大的F,那么可以定义一个有序数组, 包含所有进制标识(从0到F),那么其下标也是0到15,而转换进制,最多是&15, 得出的结要最大也是15,刚好一一对应,因为整数有四个字节, 所以其最大元素个数为-1的二进制32个,那么可以定义一个32长度的char数组, 接收每次查表对应得到的表值,再倒过来打印.就得到进制转换后的值. public static void tableLookup(int x,int y,int z) { char[] arr ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char[] arr1=new char[32]; int b=0; do { arr1[b++]=arr[x&y]; x =x>>>z; } while (x>0 ); for (int c =b-1; c>=0;c-- ) { System.out.print(arr1[c]+" "); } System.out.println(); }
|