- AVR单片机应用技术项目化教程
- 欧阳明星编著
- 997字
- 2025-02-28 08:52:37
1.1.3 二进制数运算
二进制运算分为算术运算和布尔逻辑运算。二进制的算术运算与十进制的加减乘除的运算方法和基本规则一样,为逢二进一,借一当二。布尔逻辑运算是二进制特有的一种运算,是计算机中实现编程操作的重要运算,它是基于基本的与或非的数理逻辑运算,以位为基本运算单位,互相之间不受影响。
1.算术运算
(1)加法运算
二进制的加法运算的规则为
0+0=0
0+1=1
1+1=10(1为向高位的进位数)
【例1-1】求X+Y,其中X=10001110,Y=11001111。
解:按照二进制加法运算规则

结果为101011101,有9位二进制,1为运算结果的第9位进位位。
(2)减法运算
二进制减法运算规则为
0-0=0
1-0=1
1-1=0
0-1=1(向高位借1作2)
【例1-2】求X-Y,其中X=11000011,Y=00101101。
解:按照二进制加法运算规则,

结果为10010110。
(3)乘法运算
乘法运算的规则为
0×0=0
0×1=0
1×1=1
【例1-3】求X×Y,其中X=1001,Y=0101。
解:按照二进制乘法规则,

结果为0101101B
(4)除法运算
除法运算规则为
0÷1=0
1÷1=1
【例1-4】求X÷Y,其中X=10110100,Y=1001。
解:按照二进制除法规则

结果商为101000B,余数为0。
2.逻辑运算
在布尔逻辑中,基本的逻辑关系有与、或、非、异或等。
(1)逻辑与运算
一个事件由多个条件决定,如果决定这件事的所有条件均满足该事件才成立,则所有条件之间满足逻辑“与”关系。逻辑与运算用“·”或“&”逻辑运算符表示,其基本运算规则如下
0×1=0
1×1=1
0×1=0
计算机中的逻辑与运算就是将二进制逐位进行逻辑与运算。
【例1-5】求X与Y的逻辑与运算,其中X=10110111,Y=00001111。
解:按照二进制逻辑与规则,逐位进行逻辑与,即

其结果为00000111B。
(2)逻辑或运算
一个事件由多个条件决定,当决定这个事件的任意一个条件满足,该事件即可成立,则所有条件满足逻辑“或”关系。逻辑或运算使用“+”或“|”逻辑符号表示,其基本运算规则如下
0+1=1
1+1=1
0+0=0
计算机中的逻辑或运算就是将二进制逐位进行逻辑或运算。
【例1-6】求A与B的逻辑或运算,其中A=10110111,B=10000110。
解:按照二进制逻辑或运算规则,逐位进行逻辑或,即

其结果为10111111B。
(3)逻辑非运算
逻辑“非”即为逻辑“反”,条件满足时事件不成立,条件不满足时事件成立。用X表示条件,用Y表示事件结果,X与Y的逻辑非可以表示为

逻辑非的运算规则为

【例1-7】求X的逻辑非,X=11001000。
解: =
=00110111
其结果为00110111B。
(4)逻辑异或运算
决定事件结果的两个条件如果相同时事件不成立,只有两个条件不同时事件才成立,这就是逻辑异或,用逻辑符号“⊕”表示。逻辑异或的运算规则如下
0⊕=0
1⊕1=0
0⊕1=1⊕0=1
【例1-8】求A和B的逻辑异或运算,A=1000,B=1101。
解:

异或之后的结果为0101B。