| 十转十六:while(num!=0)     num&15   num=num>>>4 ,结果为每次与运算的值反转,大于9的,对应字母即可。 十转八:while(num!=0)     num&7  num=num>>>3,结果为每次与运算的值反转
 
 代码查表法:
 //查表十转八
 public static void toOct(int num)
 {
 trans(num,7,3);
 }
 
 //查表十转十六
 public static void toHex(int num)
 {
 trans(num,15,4);
 }
 
 //查表法
 public static void trans(int num,int base,int offset)
 {
 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;
 
 if(num==0)
 System.out.println(0);
 while(num!=0)
 {
 int temp=num&base;
 arr[--pos]=chs[temp];
 num=num>>>offset;
 }
 
 for(int x=pos;x<arr.length;x++)
 {
 System.out.print(arr[x]);
 }
 System.out.println();
 }
 
 |