1. 左移
a << n; 相当于 a = a * 2^n
高位丢弃,低位补0
2. 右移
a >> n; 相当于 a = a / 2^n
有符号位不变(即最高位为不变),空缺出来的补0
3. 与
a &=~(1<<3); 第3位置为0
4. 或
a |=1<< 3; 第3位置为1
int a = 2;
a = a << 1;
printf("%d\n", a);
a = a >> 1;
printf("%d\n", a);
a = -2;
a = a << 1;
printf("%d\n", a);
a = a >> 1;
printf("%d\n", a);