黑马程序员技术交流社区

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

作者: 花之都双鱼    时间: 2014-9-24 21:55
标题: 进制转换
        /*
        十进制-->十六进制。
        */
        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得到的结果是什么


作者: ζ_____________    时间: 2014-9-24 23:32
&15之后是取出这个数在二进制中的后4位二进制有效位. 而1 个字节是 8位.   而这里的 x 定义的int 型的.  占用的是4个字节.  所以就是 4*8 = 32位.
&15一次取出4位(>> 4 位)
取 8次取完(x默认0 取一次)




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