C语言位运算符详解
位运算符
C语言中的位运算符是什么?据专业术语上的描述,位运算,即操作二进制位的过程!个人理解,这句话简而言之就是通过C语言的代码直接操作机器码上的二进制数,即对各种各样的值的二进制数的每个0和1位上的运算(仅供参考)。
C语言位运算符表
符号 | 描述 | 实例 |
---|---|---|
& | 按位与,如果两个对应的位都是1,则结果为1,否则为0 | 6(110)& 2(010)得 2(010) |
| | 按位或,如果两个对应的位至少有一个1,则结果为1,否则为0 | 6(110)| 2(010)得 6(110) |
^ | 按位异或,如果两个对应的位中有且仅有一个为1,则结果为1,否则为0 | 6(110)^ 3(011)得 5(101) |
~ | 按位取反,对一个数的每个二进制位取反,即1变为0,把0变为1 | ~5(101)得 -6 |
<< | 左移,将左操作数所有二进制位向左移若干位,右边空出的位用0填充 | 6(110) << 1 得 12(1100) |
>> | 右移,将左操作数所有二进制位向右移若干位,左边空出的位用0填充 | 6(110) << 2 得 1(001) |
C语言位运算符实例代码
#include <stdio.h>
int main() {
printf("%d \n", 6 & 2);
printf("%d \n", 6 | 2);
printf("%d \n", 6 ^ 3);
printf("%d \n", ~5);
printf("%d \n", 6 << 1);
printf("%d \n", 6 >> 2);
}
免责声明:内容仅供参考,不保证正确性。