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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘郑瑞 中级黑马   /  2013-1-17 00:23  /  987 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进制转化的问题,体现了java不仅追求简单还追求效率。
package com.heima.source;
public class Change {
        public static void main(String[] args) {
                c2(10);
                c16(12);
                c166(12);
        }
        //二进制转化;利用StringBuffer容器。
        public static void c2(int num) {
                StringBuffer sb = new StringBuffer();
                while (num > 0) {
                        sb.append(num % 2);
                        num = num / 2;
                }
                System.out.println(sb.reverse());
        }
        //十六进制方法一:利用StringBuffer容器。
        public static void c16(int num) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < 8; i++) {
                        //王牌操作&:输入数与15的与位操作,转化成十六进制
                        int temp = num & 15;
                        if(temp > 9){
                                //强转成char类型
                                sb.append((char)(temp-10 + 'A'));
                        }else
                        sb.append(temp);
                        //位运算,效率相当之高
                        num = num >>> 4;
                }
                System.out.println(sb.reverse());
        }
        //十六进制方法二:利用数组容器。
        public static void c166(int num){
                char [] str = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
                char [] temp = new char[8];
                //定义追踪变量
                int pro = temp.length - 1;
                while(num!=0){
                int result = num & 15;
                //反向存放
                temp[pro--]= str[result];
                num = num>>>4;
                }
                //正向读取
                for(int i = pro+1;i<temp.length;i++){
                        System.out.print(temp[i]);
                }
        }
}

评分

参与人数 1黑马币 +3 收起 理由
冯海霞 + 3

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马