1. 位移位运算符
- 左移 <<
- 右移 >>
- 运算对象只能是整型或字符型数据
- 参与位移位运算时,运算对象以二进制形式进行相应的按位运算。
2. 运算规则
- 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移有关。
- 若是左移,则补入的数全都是0
- 若是右移,还与被移位的数据是否有符号有关。
- 若是无符号数,则补入的数全都是0
- 若是有符号数,则补入的全部都是原码最左边的数(即原码的符号位)
3. 优先级
- 算术运算符 优先于 位移位运算符 优先于 关系运算符
- 位移位运算符的优先级相同,结合性是从左至右
4. 位移位运算的例子
设
unsigned int b = 248;
表达式 b = b >>2 运算后的值为62
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
十进制数右移1位,除以2;右移2位,除以;左移乘以。