位移运算符
想象一个数字:5的二进制[*]十进制:5
[*]二进制:00000101(为了直观,我们用8位表示)
<strong>1. 左移( 2
00010100 → 往右挤2位 → 00000101(结果是5,即20÷4=5)负数:-8 >> 2
-8的二进制是11111000(补码表示)→ 往右挤2位 → 11111110(结果是-2,即-8÷4=-2)</ul>3. 无符号右移(>>>):强行补0
规则:无论正数负数,左边统统补0。
结果:负数会变成正数!
例子:
[*]-8 >>> 2
-8的二进制是11111000 → 往右挤2位并补0 → 00111110(结果变成62!符号位被0覆盖了)
一句话总结
[*]:右移除2,负数补1,正数补0。
[*]>>>:右移除2,统统补0(Java专属)。
现在试试?
如果x = 3,那么:
[*]x > 1 = 1(3÷2向下取整)
试试看对不对?
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]