目录
C 语言提供了六种位运算符:
运算符 | & | | | ^ | ~ | << | >> |
说明 | 按位与 | 按位或 | 按位异或 | 取反 | 左移 | 右移 |
快速记忆 | 全为1,才为1 | 有一个为 1,就为1 | 相同,才为0 | 0和1互换 | 各个二进制位全部左移若干位,高位丢弃,低位补 0 |
二进制位全部右移若干位,低位丢弃,高位补 0 或 1。 如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。 |
一、按位与运算(&)
按位与运算通常用来对某些位清 0,或者保留某些位。
例如要把 n 的高 16 位清 0 ,保留低 16 位,可以进行 n & 0XFFFF 运算(0XFFFF 在内存中的存储形式为 0000 0000 -- 0000 0000 -- 1111 1111 -- 1111 1111)。
#include <stdio.h>
int main(){
int n = 0X8FA6002D;
printf("%d, %d, %X\n", 9 & 5, -9 & 5, n & 0XFFFF);
return 0;
}
运行结果&