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