位运算运算规则

位运算符

位运算符 作用 优先级
~ 按位取反 1
<< 和>> 左移 右移 2
& 按位与 3
^ 按位异或 4
按位或 5

涉及进制转换内容详见链接:https://blog.csdn.net/qq_48434912/article/details/122898217?spm=1001.2014.3001.5502
1、按位取反(~)

单目运算符,以二进制为单位,1变0,0变1。

2、按位与(&)、按位或(|)

双目运算符,以二进制为单位。

 1&1=1			1|1=1
 0&0=0			0|0=0
 1&0=0			1|0=1
 0&1=0			0|1=1

3、异或(^)

双目运算符,以二进制为单位。
运算规则:两个数相同异或为0,不同异或为1。

 1^1=0
 0^0=0
 1^0=1
 0^1=1

特性:

  1. 与1异或具有翻转性(0变1,1变0)
  2. 与0异或具有保持性(异或后为本身)
  3. 与一个二进制数连续异或两次后恢复原值不变,具有恢复性
  4. 异或运算具有交换性(a ^ b = b ^ a)

4、移位运算符(左移位<<)
双目运算符,以二进制为单位。
规则:高位不论0或1都丢弃,低位空位以0填充。
特征:高位丢弃的没有1时,左移 i 位,变成 2^i 倍。

 20<<2
 20二进制:0001 0100
 左移两位:0101 0000
 结果:20*2^2=80

5、移位运算符(右移位>>)
规则:低位不论0或1都丢弃,高位空位对于有符号的数填充符号位(正数填0,负数填1),对于无符号的数则填0。
特征:低位丢弃的没有1时,右移 i 位,变成 2^-i 倍,即缩小了 2^i 倍。

20>>2
 20二进制:0001 0100
 右移两位:0000 0101
 结果:20*2^-2=5

注:位运算后若无赋值操作,则变量的值不变。

你可能感兴趣的:(笔记,算法)