二元位操作符
包括&,|,^三种,举例如下:
15 & 9 结果为 9 (1111 & 1001 = 1001)
15 | 9 为 15 (1111 | 1001 = 1111)
15 ^ 9 为 6 (1111 ^ 1001 = 0110)
移位操作符
移位操作符需要两个操作数:第一个是要进行移位的数值,第二个指定要对第一个数移位的数目。移位的方向由使用的操作符决定。
移位操作符将把两个操作符转换为 32 位整型数值,并返回与左操作数类型相同的结果。
<< (左移)
该操作符将把第一个操作数向左移若干位。移出的位将被忽略。右侧空位补零。
例如,9<<2 结果为 36,因为 1001 向左移两位变成 100100,这是 36。
>> (算术右移)
该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补上与原来最左面位相同的值。
例如,9>>2 结果为 2,因为 1001 右移两位变成 10,这是 2。反之,-9>>2 结果为 -3,因为要考虑到符号位。
>>> (逻辑右移)
该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补零。
例如,19>>>2 结果为 4,因为 10011 右移两位变成 100,这是 4。对于非负数,算术右移和逻辑右移结果相同。
特别要注意 逻辑右移和算术右移的区别