就是一串2进制 对目标字段进行位与运算,屏蔽当前的输入位。
将源码与掩码经过逻辑运算得出新的操作数。其中要用到逻辑运算如OR运算。AND运算。用于如将ASCLL码中大写字母改作小写字母。
2.与 或 异或 转换成补码运算
3. 用法:掩码 (&)
4. 用法:打开位 (|)
5.用法:关闭位 (&~)
6. 用法:转置位 (^)
7. 将Value的第bit_number位置1 Value |= 1 << bit_number;
8. 将Value的第bit_number位置0 Value &= ~( 1 << bit_number );
9.value & 1 << bit_number 如果该位置已被置为1,则表达式的结果为非零值
C/C ++提供位逻辑运算符和移位运算符。二者只能用于整形和字符型。位运算符是对每位进行操作而不影响左右两位,这有别于常规运算符(&&|| !)是将整个数进行操作的。
一. 位逻辑运算符
1. ~ 按位取反
将1变为0,将0变为1
EG:
~(10011010)
(01100101)
注:
VC++编译器,计算~10,得出的结果是-11。为什么不是5呢
10的二进制表示为1010,按位取反应该为0101,也就是十进制的5,为什么会得出-11?
VC是32位编译器,所以
10 = 00000000 00000000 00000000 00001010
~10 = 11111111 11111111 11111111 11110101 = -11
可以通过掩码(位与) 与15位与
15 = 00000000 00000000 00000000 00001111
~10 = 00000000 00000000 00000000 00000101 = -11










