布尔代数起源于1850年前后乔治·布尔的工作,最简单的布尔代数是在二元集合{0, 1}基础上的定义。布尔运算 ~、&、|、^分别对应逻辑运算NOT、AND、OR、XOR,如下表所示。其中 ~为一元运算,其他三个为二元运算。
图中表格以竖轴为变量某一位的取值、横轴为掩码对应位的取值,表格中为运算结果的值,观察分析可以得到以下几点:
- 对& 运算,若掩码取值为1,结果为变量位原本的值;若掩码取值为0,则结果为0
- 对 | 运算,若掩码取值为0,结果为变量位原本的值;若掩码取值为1,则结果为1
- 对^ 运算,若掩码取值为0,结果为变量位原本的值;若掩码取值为1,则结果为变量位的补码
例一
x = 0x87654321,若给定以下要求及结果,写出各个表达式。
- x的最低有效字节,其他位均置为0。[0x00000021]
保留x的最低有效字节,即保留变量位原本的值,这一点&|^都可以做到;而其他位均置为0,只有&运算+对应掩码位取0可以做到,又有&运算+对应掩码位取1可