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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© joe520kay 中级黑马   /  2015-7-22 12:59  /  252 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师写了个10进制转16进制的方法,有些没看懂,求解答!!!
代码如下:省去main函数和类
        /*
         * 十进制--->十六进制
         */
        public static void toHex(int num){
                StringBuffer sb = new StringBuffer();
                for(int x=0;x<8;x++){    //问题:循环次数为什么设定为8
                        int temp = num & 15;
                        if(temp>9)        //问题:判断条件为什么设定为9?
//                                System.out.println((char)(temp-10+'A'));
                                sb.append((char)(temp-10+'A'));
                        else
//                                System.out.println(temp);
                                sb.append(temp);
                        num = num >>>4;
                }
                System.out.println(sb.reverse());
        }
}

3 个回复

正序浏览
joe520kay 发表于 2015-7-22 15:30
哦,原来是这样。谢谢了~

不客气
回复 使用道具 举报
耀阳圣尊 发表于 2015-7-22 15:22
循环次数是 因为 int是32位的 每四位为一组 所以是8
后面那个大于9是因为十到十五需要用a到f表示
...

哦,原来是这样。谢谢了~
回复 使用道具 举报
循环次数是 因为 int是32位的 每四位为一组 所以是8
后面那个大于9是因为十到十五需要用a到f表示
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马