一.C语言位运算符简介
C语言的位运算符有六种,分别是:
>> 右移运算符
<< 左移运算符
& 按位与运算符
| 按位或运算符
^ 按位异或运算符
~ 按位取反运算符...这些运算符都是对于基本数据类型的二进制位进行操作的,这里我们只讨论整型数据类型的位运算
二.各个运算符的具体使用
>> 右移运算符:将整数的二进制形式整体向右移动,移动过后左边缺的位的填充取决于编译器,...可能是算术右移也可能是逻辑右移
<< 左移运算符:将整数的二进制形式整体向左移动,移动过后右边缺的位用0补全
逻辑右移:在位移的过程中,符号位左边可能移入新的位,移入的新位用0填充,则称为逻
辑移位
算术右移...:在位移的过程中,符号位左边可能移入新的位,移入的新位由符号位决定,符号位为
1则移入的新位用1补充,符号位为0则用0补充,保持原数的正负不变,这样的移位
方式称为算术移位....11 结果怎么看都不是-4
实际上在计算机的位移运算中,正数和负数的运算都是使用补码的形式运算
正数的补码 = 正数的原码
负数的补码 = 负数的原码除符号位外按位取反 + 1;
负数的原码 = (负数的补码