A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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();
        }

3 个回复

正序浏览
做完do之后,b加1了,结束后,b应该是在这个数组长度之后的吧?c是不是应该b-2呢? 。。。厉害,这样挺简洁的
回复 使用道具 举报
912098812 发表于 2015-9-19 21:32
哇哦。。。。顶~~~~

谢谢辣,感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马