任何进制都能查的方法
- class Demo8{
- public static void main(String[] args) {
- to(60,15,4);
- }
- // 定义一个 数 要与上的数 这个数右移的位数
- public static void to(int num,int base,int index) {
- //判断num是0的情况
- while (num == 0 ) {
- System.out.println('0');
- return;
- }
- //查表法建立一个数组,16进制所有元素都有也就包含了八进制,二进制
- char[] chs = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- //定义一个数组将最后我们要的结果的元素装进去,必须是32位因为int 32位二进制表示
- char[] arr = new char[32];
- //定义一个指针来记录最后结果数组的有效位
- int pos = arr.length - 1;
- //判断将有效位的元素值全部赋予最后我们要的结果数组
- while (num != 0) {
- int temp = num & base;
- arr[pos] = chs[temp];
- pos--;
- num = num >>> index;
- }
- //从结果位的有效位来循环遍历数组,注意此时的pos是在有效位得到后还自减了一回,所以,我们要+1
- for (int x = pos + 1;x < arr.length ;x++ ) {
- System.out.print(arr[x]);
- }
- }
- }
复制代码 |