黑马程序员技术交流社区

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

作者: 安静的喝会奶    时间: 2016-6-16 17:53
标题: 进制转换查表
class  SearchExcel
{
        public static void main(String[] args)
        {
                System.out.println("输入您要转换的数:");
                Scanner sc = new Scanner(System.in);
                int num = sc.nexInt();
                System.out.print("转换成8进制为:");
                toOcto(num);
                System.out.println();
                System.out.println("转换成16进制为:");
                toHex(num);
        }
        public static void toOcto(int num)
        {
                excel(num,11,7,3);
        }
        public static void toHex(int num)
        {
                excel(num,8,15,4);
        }
        private static void excel(int num,int len,int and,int shift)
        {
                char[] table = {'0','1','2','3','4',
                                     '5','6','7','8','9',
                                     'A','B','C','D','E','F'};
                if(num==0)
                {
                        System.out.println("转换成"+(and+1)+"进制数是:0");
                        return;
                }
                char[] arr = new char[len];
                int point = arr.length;
                for(int a = num;a!=0; num = num>>shift,a=num)
                {
                        a = a∧
                        arr[--point] = table[a];
                }
                for(int i = point;i<arr.length;i++)
                {
                        System.out.print(arr[i]);
                }
        }
}





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