黑马程序员技术交流社区

标题: 查表法实现进制转换 [打印本页]

作者: PDH    时间: 2015-9-16 13:00
标题: 查表法实现进制转换
本帖最后由 PDH 于 2015-9-16 13:02 编辑

public class JinzhiSwap {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println(toBin(6));
                System.out.println(toHex(60));
        }
//        查表法
//        十进制>>二进制
        public static String toBin(int num){
                return trans(num,1,1);
        }
//        十进制>>十六进制
        public static String toHex(int num){
                return trans(num,15,4);
        }
//        十进制>>八进制
        public static String toOct(int num){
                return trans(num,7,3);
        }
        private static String trans(int num,int base,int offset){
                if(num==0)
                        return "0";
                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;  //定义指针
                int temp;  //临时存储
               
                while(num!=0){
                        temp=num & base;
                        arr[--pos]=chs[temp];
                        num=num >>> offset;                       
                }       
                return String.valueOf(arr,pos,arr.length-pos);
        }

}








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