- AVR单片机应用技术项目化教程
- 欧阳明星编著
- 997字
- 2020-08-28 22:54:33
1.1.3 二进制数运算
二进制运算分为算术运算和布尔逻辑运算。二进制的算术运算与十进制的加减乘除的运算方法和基本规则一样,为逢二进一,借一当二。布尔逻辑运算是二进制特有的一种运算,是计算机中实现编程操作的重要运算,它是基于基本的与或非的数理逻辑运算,以位为基本运算单位,互相之间不受影响。
1.算术运算
(1)加法运算
二进制的加法运算的规则为
0+0=0
0+1=1
1+1=10(1为向高位的进位数)
【例1-1】求X+Y,其中X=10001110,Y=11001111。
解:按照二进制加法运算规则
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0014_0003.jpg?sign=1739327566-UIr9ncTb8sVyQBicME5gC8ziKDg65zEv-0-14ceb9f600fe8cd6b387b830b42aa3ed)
结果为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。
解:按照二进制加法运算规则,
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0014_0004.jpg?sign=1739327566-1a5RtXQCBSRRzFKXABuDRw3UbsdNfSch-0-68c17bdceb06ef8bf01ec141eb4b4d0b)
结果为10010110。
(3)乘法运算
乘法运算的规则为
0×0=0
0×1=0
1×1=1
【例1-3】求X×Y,其中X=1001,Y=0101。
解:按照二进制乘法规则,
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0015_0005.jpg?sign=1739327566-h1g11VnbdwuP0ar0mCi5UjB0qNuDVDN3-0-87858b7cb8fdb6d0962cccf4e0765070)
结果为0101101B
(4)除法运算
除法运算规则为
0÷1=0
1÷1=1
【例1-4】求X÷Y,其中X=10110100,Y=1001。
解:按照二进制除法规则
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0015_0006.jpg?sign=1739327566-U7GJEHxwskvOZdgBATxXzYa8FQ8sxyo6-0-f695f786767dd204c21a4a3d823356fc)
结果商为101000B,余数为0。
2.逻辑运算
在布尔逻辑中,基本的逻辑关系有与、或、非、异或等。
(1)逻辑与运算
一个事件由多个条件决定,如果决定这件事的所有条件均满足该事件才成立,则所有条件之间满足逻辑“与”关系。逻辑与运算用“·”或“&”逻辑运算符表示,其基本运算规则如下
0×1=0
1×1=1
0×1=0
计算机中的逻辑与运算就是将二进制逐位进行逻辑与运算。
【例1-5】求X与Y的逻辑与运算,其中X=10110111,Y=00001111。
解:按照二进制逻辑与规则,逐位进行逻辑与,即
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0016_0007.jpg?sign=1739327566-k72on3Zo4R09smySmylCrgMOibu9j353-0-2a8cf440813a82c1453f7a6841ba9842)
其结果为00000111B。
(2)逻辑或运算
一个事件由多个条件决定,当决定这个事件的任意一个条件满足,该事件即可成立,则所有条件满足逻辑“或”关系。逻辑或运算使用“+”或“|”逻辑符号表示,其基本运算规则如下
0+1=1
1+1=1
0+0=0
计算机中的逻辑或运算就是将二进制逐位进行逻辑或运算。
【例1-6】求A与B的逻辑或运算,其中A=10110111,B=10000110。
解:按照二进制逻辑或运算规则,逐位进行逻辑或,即
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0016_0008.jpg?sign=1739327566-XqiPPGXVHQtoaYNO7uI4yFLAldKIETLL-0-0529e8935665028cf516abe75196df78)
其结果为10111111B。
(3)逻辑非运算
逻辑“非”即为逻辑“反”,条件满足时事件不成立,条件不满足时事件成立。用X表示条件,用Y表示事件结果,X与Y的逻辑非可以表示为
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0016_0009.jpg?sign=1739327566-hmyUBB4FgEquZ7supAIH1C59VhieDkmH-0-33d8959a47a09120f5e67041491dfbde)
逻辑非的运算规则为
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0016_0010.jpg?sign=1739327566-1SZIjuOz2whfrC2cze9pbNWQdzFEv5LV-0-c8c79acc8e07cdf45a76d9f52cf4cf0c)
【例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。
解:
![](https://epubservercos.yuewen.com/CE8E00/3590550703329801/epubprivate/OEBPS/Images/figure_0017_0013.jpg?sign=1739327566-2unXJHgY2VQiLEfZB78ljPepeGrnMbrZ-0-f6f2de6ad5c864c3edd678acf2fe7a57)
异或之后的结果为0101B。