本帖最后由 xscn 于 2013-7-20 15:25 编辑
- class ArrayBase
- {
- public static void main(String[] args)
- {
- toBin(60);
- System.out.println("");
- toHex(60);
- System.out.println("");
- toBa(60);
- }
- //十进制-->二进制
- public static void toBin(int num)
- {
- trans(num,1,1);
- }
- //十进制-->八进制
- public static void toBa(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)//需要转换的数字,需要与的基础数,需要右移的位数
- {
- if(num==0)//特殊情况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;
- arr[--pos] = chs[temp];
- num = num >>> offset;
- }
- for(int x=pos; x<arr.length; x++)
- {
- System.out.print(arr[x]);
- }
- return ;
- }
- }
复制代码 十进制转2进制与1右移1位,十进制转16进制与15右移4位,十进制转8进制与7右移3位,抽取查表的功能定义函数接受(需要转换的数字,需要与的基础数,需要右移的位数)就可以了 |