黑马程序员技术交流社区

标题: 查表法之进制转换 你知道多少? [打印本页]

作者: 乔友为    时间: 2015-9-19 21:26
标题: 查表法之进制转换 你知道多少?
2,8,16进制每位最小表示是0,最大的F,那么可以定义一个有序数组,
        包含所有进制标识(0F),那么其下标也是015,而转换进制,最多是&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();
        }


作者: 乔友为    时间: 2015-9-19 21:35
912098812 发表于 2015-9-19 21:32
哇哦。。。。顶~~~~

谢谢辣,感谢
作者: 残影    时间: 2015-9-19 21:46
做完do之后,b加1了,结束后,b应该是在这个数组长度之后的吧?c是不是应该b-2呢? 。。。厉害,这样挺简洁的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2