- public class ArrayDemo3
- {
- public static void main (String args [])
- {
- toHex(60);
- toOctal(60);
- toBinary(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 a, int b)
- {
- if (num == 0)
- {
- System.out.print("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 & a; //转换不同的进制,与上不同的a。
- arr[--pos] = chs[temp];//从定义的表里面查找到的元素倒着存储到定义过的数组中去。
- num = num >>> b; //转换不同的进制,右移不同位置。
- }
- for (int x=pos; x<arr.length; x++)
- {
- System.out.print(arr[x]);//把存储到表中的元素,按照顺序打印出来。
- }
- System.out.println();
- }
- }
复制代码
|
|