首页 理论教育 单片机的二进制算术与逻辑运算

单片机的二进制算术与逻辑运算

时间:2023-10-17 理论教育 版权反馈
【摘要】:两个二进制数相加时要注意低位的进位,且两个8位二进制数的和最大不能超过9位。与十进制类似,二进制除法也是从被除数最高位开始,查找出够减除数的位数,并在其最高位处商上1并完成它对除数的减法运算,然后将被除数的下一位移到余数位置上。逻辑与又称逻辑乘,常用∧运算符表示。逻辑与运算通常可用于从某数中取出某几位。

单片机的二进制算术与逻辑运算

1.进制的算术运算

(1)加法运算。

加法运算规则为:

0+0=0 0+1=1 1+0=1 1+1=0(向邻近高位有进位)

【例1.6】有两个8位二进制数X=10110110B,Y=11011001B,试求出X+Y的值。

所以,X+Y=10110110B+11011001B=110001111B。

两个二进制数相加时要注意低位的进位,且两个8位二进制数的和最大不能超过9位。

(2)减法运算。

减法运算规则为:

0-0=0 0-1=1(向邻近高位借1当2) 1-0=1 1-1=0

【例1.7】有两个8位二进制数X=10010111B,Y=11011001B,试求X-Y的值。

由于Y>X,故有X-Y=-(Y-X),则相应竖式为:

所以,X-Y=-01000010B=-66。

两个二进制数相减时应先判断它们的大小,将大数作为被减数,小数作为减数,差的符号由两数关系决定。此外,在减法过程中还要注意低位向高位借1应当作2。

(3)乘法运算。

乘法运算规则为:

0×0=0 1×0=0 0×1=0 1×1=1

两个二进制数相乘与两个十进制数相乘类似,可以用乘数的每一位分别去乘被乘数,所得结果的最低位与相应乘数位对齐,最后将所有的结果加起来,便得到积,这些中间结果又称为部分积。

【例1.8】设两个4位二进制数X=1101B和Y=1011B,试计算X×Y的值。

所以,X×Y=1101B×1011B=10001111B。

(4)除法运算。

除法是乘法的逆运算。与十进制类似,二进制除法也是从被除数最高位开始,查找出够减除数的位数,并在其最高位处商上1并完成它对除数的减法运算,然后将被除数的下一位移到余数位置上。若余数不够减除数,则商上0,并将被除数的再下一位移到余数位置上;若余数够减除数,则商上1并进行余数减除数运算,这样反复进行,直到全部被除数的各位都下移到余数位置上为止。

【例1.9】设X=10101011B,Y=110B,试求X÷Y的值。

X÷Y的竖式为:

所以,X÷Y=10101011B÷110B=11100B…余11B。

2.二进制的逻辑运算(www.xing528.com)

计算机处理数据时常用到逻辑运算。逻辑运算由专门的逻辑电路完成。下面介绍几种常用的逻辑运算。

(1)逻辑与(And)。

逻辑与又称逻辑乘,常用∧运算符表示。逻辑与的运算规则为:

0∧0=0 0∧1=0 1∧0=0 1∧1=1

只有当参与运算的逻辑变量都为1时,“与”运算的结果才会为1;只要其中有一个为0,其结果就为0。

【例1.10】已知X=10111001B,Y=11110000B,求X∧Y的值。

所以,X∧Y=10110000B。

逻辑与运算通常可用于从某数中取出某几位。由于上例中Y的取值为F0H,此逻辑与运算结果中高4位可看成是从X的高4位取出来的,若要将X的最高位取出来,则Y的取值应该为80H。

(2)逻辑或(Or)。

逻辑或又称逻辑加,常用∨运算符表示。逻辑或的运算规则为:

0∨0=0 0∨1=1 1∨0=1 1∨1=1

只要当参与“或”运算的任意一个逻辑变量为1时,“或”运算结果就为1;只有所有的逻辑变量都为0,结果才为0。

【例1.11】已知X=10111001B,Y=00001111B,求X∨Y的值。

逻辑或运算通常可用于使某数中某几位添加1。由于上例中Y的取值为0FH,此逻辑或运算可看成是给X的低4位添加1,若要将X的高4位添加1,则Y的取值应该为F0H。

(3)逻辑非(Negate)。

逻辑非又称逻辑取反,常用“ˉ”运算符表示。逻辑非的运算规则为:

【例1.12】已知X=10110011B,求的值。

因为X=10110011B,所以=01001100B。

(4)逻辑异或(Exclusive-Or)

逻辑异或又称为半加,是不考虑进位的加法,常用⊕运算符表示,逻辑异或的运算规则为:

0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0

只有参与“异或”运算的两个逻辑变量值不同时,“异或”运算结果为1,否则结果为0。

【例1.13】X=10110001B,Y=11001010B,求X⊕Y的值。

所以,X⊕Y=10110001B⊕11001010B=01111011B。

逻辑异或运算通常可用于使某数中某几位取反。与0异或为自身,与1异或为取反。要使某数的高4位取反,低4位不变,则Y取F0H。若要使X中最高位取反,则Y的取值应为80H。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈