① << 左移 乘以2^n
m << n m*(2^n)
eg:4: 0 0 1 0 0
8: 0 1 0 0 0
[数据、数字]移位
左移:右侧补0
1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0
1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 ====》-1 1 1 1 1 1 1 1 0 ====》-2
右移:补符号 (整数补0,负数补1)
②>> 右移 除以2^n
①屏蔽
eg:int a = 0x1234
a & 0xff00; 屏蔽低八位,取出高8位。
②取出
eg:A & 1 => A
①保留
eg:A | 0 ===A
A | 1 ===1
注:eg:设置一个资源的5bit为高电平,其他为不变。
int a;
a = ( a | (0x1<<5)); ======> a | (0x1<<5);
eg:清除第五位
a = a & ~(0x1<<5); ======> a = a & (~(0x1<<n))
1 ^ 1 = 0, 0 ^ 0 = 0‘
1 ^ 0 = 1;
0xf0 ~ 0xffff ff0f
①限制符 (a+b)*c
②函数访问 int fun();
原文:https://www.cnblogs.com/BANLOONG/p/10461070.html