黑马程序员技术交流社区
标题:
位操作来获取一个int数的十六进制、八进制、二进制
[打印本页]
作者:
晓月残魂
时间:
2015-6-14 21:16
标题:
位操作来获取一个int数的十六进制、八进制、二进制
本帖最后由 晓月残魂 于 2015-6-14 21:23 编辑
例如:60=0000-0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0011-1100
---------------------------------------------------------
编号 1 2 3 4 5 6 7 8
4位分为一组,则每组对应的十进制是多少?
第8组:(60>>>0)&((2<<4)-1) 即60&7
0000-0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0000-1111
------------------------------------------------------
0000-0000 0000-0000 0000-0000 0000-1100
第7组:(60>>>4)&15
0000 0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0000-1111
------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0011-0000
第6组:(60>>>8)&15
0000-0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0000-1111
--------------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0011-0000
其他一样。
扩展:这种方法可以把十进制转为十六进制(右移4位)、八进制(3位)、
二进制(右移1位)
>>>无符号右移
作者:
晓月残魂
时间:
2015-6-14 21:21
更正一下:
第七组 与 的结果是:0000-0000 0000-0000 0000-0000 0000-0011
第六组 与 的结果是:0000-0000 0000-0000 0000-0000 0000-0000
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2