黑马程序员技术交流社区
标题:
位数运算不懂
[打印本页]
作者:
牛刚
时间:
2013-1-20 19:15
标题:
位数运算不懂
6>>2=1 就是6/2(2)(次幂)=1这里不明白怎么等于1呀
作者:
柴乔军
时间:
2013-1-20 19:20
0110是十进制的6,向右移动两位就是0001,另一个1溢出了,就是1了~
当初学单片机的时候。。。汇编语言就是这么进行位运算的
作者:
张洪慊
时间:
2013-1-20 19:36
6-->补码: 00000 110
右移一位: 00000 011(如果负数前面补1)
在右移一位: 00000 001 (1)
正数原码,反码,补码均相同
还要注意一点:
对于int型整数移位 例:a>>b 系统先将b对32取模(b%32),得到的结果才是真正的移位的位数
对于long型整数移位,则b%64
---<java就业培训教程>
作者:
郭孟涛
时间:
2013-1-20 19:39
>>是位运算中的向右移动二进制数运算
6的二进制是0000 0110。向右移动两位就是0000 0001 ,前面用00补充,后面的10舍去。二进制0000 0001就是10进制的1
作者:
折纸时代
时间:
2013-1-20 19:48
6>> 2 = 1
上面运算表达式的意思是 6右移两位
相当于6 / (2)2 //(2)/2 是2的2次幂 就是4
6/4 等于几? 1.x 因为你的运算数都是int类型的 所以结果也是取整数. 就是1.
如果 二进制计算的话.
6的二进制是 110
110 右移2为 就是移除最右边的两个数位 结果是 001
001的十进制就是1 .
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2