黑马程序员技术交流社区
标题:
有点小迷糊
[打印本页]
作者:
HM周一帆
时间:
2013-3-28 20:57
标题:
有点小迷糊
本帖最后由 HM周一帆 于 2013-3-29 08:26 编辑
public static void ten2Hex(int num){
while(num !=0){
int temp = num &15;
if(temp>9){
System.out.println((char)(temp-10+'A'));
}else
System.out.println(temp);
num = num>>>4;
}
}
int temp = num&15;这一行是干什么呢?
作者:
刘胜寒
时间:
2013-3-28 21:08
int temp = num&15 ;这是与运算,就是告诉你temp最大为15...
与运算知道吧??
举个例子
比如2&15 结果是2;
但是 127&15就是15了。
11111111000000
& 00000000001111
-----------------------------
00000000000000
这个就是与运算,希望对你有帮助
作者:
蔡陶军
时间:
2013-3-28 21:20
&作为与运算符的话 就是两个操作数的二进制进行与操作,0就是false,1就是true
例如;6&3=2
过程;110
&011
------------
010 =2
&
true&true=true;
true&false=false;
false&true=false; 只要两边的boolean表达式结果,有一个为false,结果为false。只有两边都为true,结果才为true
false&false=false;
作者:
王杰123
时间:
2013-3-28 21:27
int temp = num&15;这一行是干什么呢?
这是二进制转十六进制时采用的,& 是与运算符,15的二进制是 0000-0000 0000-0000 0000-0000 0000-1111。任何数与上15,目的就是取后四位。
比如:6&15
0000-0000 0000-0000 0000-0000 0000-0110
&0000-0000 0000-0000 0000-0000 0000-1111
------------------------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0000-0110 =6
然后每次 num = num>>>4; 就会把十六进制数倒序输出来、。
作者:
HM刘博
时间:
2013-3-28 21:35
int temp = num&15;//这一句的意思是将该十进制的数转成二进制后,取其最后四位
例如:把60转成十六进制(看过基础视频的都知道)
60的二进制:
111100
我们不用程序实现的方法是:4位一组,转换成十六进制
11 1100
-------------------
3 C 所以,60转换成十六进制数是3C
用代码实现过程,将60的二进制数111100其与上15
111100
&001111
---------------
001100 这个二进制数的十六进制是C
然后111100向右移4位,得到000011,再和15相与
000011
&001111
-------------
000011 这个二进制数的十六进制是3
最后反向打印,得到3C
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2