1.位移位运算符
- >>: 向右移动。
- >>>:无符号右移(零填充)。
2.移位运算符的一般语法
value
value >> num-bits: 将值位向右移动,保留符号位。
value >>> num-bits: 将值位向右移动,在左侧插入零。
3.向左移动
- 每次左移都会导致该值的所有位向左移动一位。
- 右侧插入了一个 0 位。
- 效果:每次移位将值乘以 2。
4.向右移动
- 每次右移都会将所有位向右移动一位。
- 保留符号位:0表示正值,1表示负值。
- 效果:每班将值除以2,向下取整。
5.无信号向右平移(>>>)
- 不保留信号位;在左边插入0.
- 用于位模式,其中值被视为无符号数。
6。位移不是旋转
- 移出的位将会丢失。
- 移位不允许恢复移出的位。
示例:
左右滚动
*shift演示*
移动字节和短值时要小心
- java 在计算表达式时自动将 byte 和 short 提升为 int。
示例:
- 将负字节值右移:提升为int时,高位填充1。
- 当使用零填充右移时(>>>),这可能会导致问题,因为在零开始出现之前前 24 位将是 1。
带有按位运算符的缩写赋值
- 所有二元按位运算符都有一种简写形式,将赋值与按位运算结合起来。
示例
x = x ^ 127; x ^= 127;
以上就是移位运算符和按位简写赋值的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com