本节内容:布尔运算,又称为逻辑运算或位运算。
■布尔代数:and与、or或、not非、xor异或,按位运算。
3.1.1 布尔代数
■布尔代数与二进制的关系
乔治·布尔是一位英国小学数学老师,19世纪最重要的数学家之一。出版了《逻辑的数学分析》 ,这是他对符号逻辑的第一次贡献。1854年,他出版了《思维规律的研究》 ,这是他最著名的著作。在这本书中布尔介绍了现在以他的名字命名的布尔代数。布尔代数非常简单,true(真)和false(假)做逻辑判断,对应二进制可以表示true为1,false为0。
举例:
1、人都会死的——真的 ; 1
2、苏格拉底是人——真的 ; 1
3、苏格拉底会死的——? 1
■布尔代数
表3-1列出了0 和1两个符号任意组合可能的结果是:
0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
|
| 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
表3-1 二进制数0和1的任意组合
■布尔代数运算
布尔运算又叫逻辑运算,表3-2中展示了计算机程序中使用的4种逻辑运算,分别是与、或、非和异或运算。0表示断电,1表示通电,计算机通过逻辑电路来实现二进制数的逻辑运算。当然,在逻辑电路中,不仅仅只有上述四种逻辑运算,更多的逻辑电路可以查阅相关资料,此处不再赘述。
布尔代数运算 | ||||||||||
第一个数 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
第二个数 |
|
| 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
结果 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
|
|
|
|
|
|
|
|
|
|
|
| 非运算:取反;非假即真,非真即假 | 或运算:有1为1,没1为0 |
| |||||||
|
| |||||||||
| 与运算:有0为0,没0为1 |
| 异或运算:不同为1,相同为0 |
| ||||||
|
|
|
|
|
|
|
|
|
|
|
表3-2 二进制数布尔代数运算
●与运算
两个位都为1时,结果才为1。
比如:
1011 0001
and(&) 1101 1000
------------------------------------------
1001 0000
图3-1 逻辑与电路
●或运算
只要有一个为1,就是1。
比如:
1011 0001
or(|) 1101 1000
------------------------------------------
1111 1001
图3-2 逻辑或电路
●异或运算
不一样的时候是1 。
比如:
1011 0001
xor(^) 1101 1000
------------------------------------------
0110 1001
图3-3 异或逻辑电路
●非运算
0就是1,1就是0。
比如:
not(~) 1101 1000
------------------------------------------
0010 0111
练习
思考:
0为假,1为真。
1.计算机是二进制运算的。 1
2.布尔运算用于二进制运算,也叫位运算。 1
3.计算机只能做布尔运算,对吗? 0还是1?
本文摘自变成达人系列教材《X86汇编语言基础教程》。