C++左移右移运算、与运算
移位运算
1. 逻辑移位
逻辑移位:移出去的位丢弃,空缺位(vacant bit)用 0 填充。
2. 算术移位
算术移位:移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充。
3. 举例
-
对于无符号数,左移右移都是逻辑移位
-
对于有符号数,左移是逻辑移位,右移是算术移位
具体操作
1. 左移运算符<<
int n = 10;
n = n << 2; // 左移两位
左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化)。
2. 右移运算符>>
-
有符号整数来说,比如int类型,右移会保持符号位不变。符号位向右移动后,正数的话补0,负数补1。
-
相当于除以2

浙公网安备 33010602011771号