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

© 花之都双鱼 中级黑马   /  2014-9-24 21:55  /  1028 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        /*
        十进制-->十六进制。
        */
        public static void toHex(int num)
        {
                StringBuffer sb = new StringBuffer();
                for(int x=0; x<8; x++)
                {
                        int temp = num & 15;
                        if(temp>9)

                                sb.append((char)(temp-10+'A'));
                        else
                                //System.out.println(temp);
                                sb.append(temp);
                        num  = num >>> 4;
                }
                System.out.println(sb.reverse());
        }
想问一下,循环中为什么是x<8,num&15得到的结果是什么

1 个回复

倒序浏览
&15之后是取出这个数在二进制中的后4位二进制有效位. 而1 个字节是 8位.   而这里的 x 定义的int 型的.  占用的是4个字节.  所以就是 4*8 = 32位.
&15一次取出4位(>> 4 位)
取 8次取完(x默认0 取一次)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马