位逻辑运算的应用例子
设
char c1=0x12, c2=0xFF, c3=0x0F;
- c1 为十六进制整数,对应的二进制数是0001 0010 。
- c2 为十六进制整数,对应的二进制数是1111 1111 。
- c3 为十六进制整数,对应的二进制数是0000 1111 。
任何数与0xFF进行按位与的运算结果是数本身。
任何数与0xFF进行按位或的运算结果是0xFF。
- 表达式 c1 & c2
运算结果等于c1
0001 0010
++& 1111 1111++
0001 0010
- 表达式 c1 | c2
运算结果等于0xFF
0001 0010
++| 1111 1111++
1111 1111
- 表达式 c1 ^ c2
运算结果是~c1(取反)
0001 0010
++^ 1111 1111++
1110 1101
- 表达式 c1 & c3
运算结果,c1高4位为0,低4位不变
0001 0010
++& 0000 1111++
0000 0010
- 表达式 c1 | c3
运算结果,c1高4位不变,低4位均为1
0001 0010
++| 0000 1111++
0001 1111
- 表达式 c1 ^ c3
运算结果,c1高4位不变,低4位取反
0001 0010
++^ 0000 1111++
0001 1101