黑马程序员技术交流社区
标题:
进制转换
[打印本页]
作者:
花之都双鱼
时间:
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