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;
以上就是移位运算符和按位简写赋值的详细内容,更多请关注图灵教育的其他相关文章!