php中文网

移位运算符和按位简写赋值

php中文网

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中文网其它相关文章!