黑马程序员技术交流社区

标题: 十进制转二进制八进制及十六进制工具代码 [打印本页]

作者: boycechan    时间: 2014-11-29 11:40
标题: 十进制转二进制八进制及十六进制工具代码
贴代码:
package JavaSE.practise;

import java.util.Scanner;

public class ArrayTest7 {

        public static void main(String[] args) {
                System.out.println("---欢迎使用进制转换工具---");
                Scanner input = new Scanner(System.in);
                String flag = "y";
                do {
                        System.out.print("请输入一个十进制数:");
                        int num = input.nextInt();
                        System.out.print(num + "的二进制数是:");
                        toBin(num);
                        System.out.println();
                        System.out.print(num + "的八进制数是:");
                        toOct(num);
                        System.out.println();
                        System.out.print(num + "的十六进制数是:");
                        toHex(num);
                        System.out.println();
                        System.out.println("-------------------");
                        System.out.println("是否继续使用,'y'或'n'?");
                        flag = input.next();
                } while ("y".equals(flag));
                System.out.println("谢谢使用");
        }

        /**
         * 进制转换方法
         *
         * @param num
         *            参与转换的数字
         * @param base
         *            “&”的位数
         * @param offset
         *            右移的位数
         */
        public static void trans(int num, int base, int offset) {
                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;
                while (num != 0) {
                        int temp = num & base;
                        arr[--pos] = chs[temp];
                        num = num >>> offset;
                }
                for (int x = pos; x < arr.length; x++) {
                        System.out.print(arr[x]);
                }
        }

        /**
         * 二进制转换
         */
        public static void toBin(int num) {
                trans(num, 1, 1);
        }

        /**
         * 八进制转换
         */
        public static void toOct(int num) {
                trans(num, 7, 3);
        }

        /**
         * 十六进制转换
         */
        public static void toHex(int num) {
                trans(num, 15, 4);
        }
}

作者: 冬天的雪    时间: 2014-11-29 12:37
这是毕老师讲的视频里的内容

daima.png (150.65 KB, 下载次数: 17)

daima.png

作者: boycechan    时间: 2014-11-29 14:24
冬天的雪 发表于 2014-11-29 12:37
这是毕老师讲的视频里的内容

是的,加个手动输入而已:lol




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