数字电子技术基础1.2二进制算术运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正数,用1表示负数。其余部分用原码的形式 表示数值位。
(+11)D =(0 1011) B
(11)D =(1 1011) B
2012-8-28
16
在做减法运算时,如果两个数是用原码表
示的,则首先需要比较两数绝对值的大小, 然后以绝对值大的一个作为被减数、绝对 值小的一个作为减数,求出差值,并以绝 对值大的一个数的符号作为差值的符号。 这个操作过程比较麻烦,而且需要使用数 值比较电路和减法运算电路。
自动丢弃
1
0 0 1 1
2012-8-28
21
对于有效数字(不包括符号位)为n位的二进制数N, 它的补码(N)COMP表示方法为 (当N为正数) N
( N )COMP n 2 N
(当N为负数)
正数的补码与原码相同,负数的补码等于2n-N 。 为避免在求补码的过程中做减法运算,通常是先求出 N的反码,然后在负数的反码上加1而得到补码。
2012-8-28
17
如果用两数的补码相加代替上述减法运算,则计算 过程中就无需使用数值比较电路和减法运算电路了, 从而使减法运算器的电路结构大为简化。
10-5的减法运算 可以用10+7的加 法运算代替。
因为5和7相加正好等于产生进位的模数12,所以称7 为-5对模12 的补数,也称为补码(complement)。 2012-8-28 18
2012-8-28 11
解:按照移位加的算法,有
乘 数
被乘数 1100
部分积 0000 1100
1 0 0 1 乘数为1,加被乘数到部分积上
被乘数左移1位
乘数为0,只将被乘数左移1位 乘数为0,只将被乘数左移1位 乘数为1,加被乘数到部分积上
11000
110000
在舍弃进位的条件下,减去某个数可以用加上它的补 码来代替。这个结论同样适用于二进制数的运算。
1011-0111=0100的减法运算,在舍弃进位的条件下, 可以用1011+1001=0100的加法运算代替。
1001是0111对模16的补码。 2012-8-28
19
带符号二进制数的减法运算
二进制数的补码表示 补码或反码的最高位为符号位,正数为0,负 数为1。 当二进制数为正数时,其补码、反码与原码相 同。 当二进制数为负数时,原码符号位不变,将原 码的数值位逐位求反,然后在最低位加1得到补 码。
二进制数的除法运算能通过若干次的“除数右移1 位”和从被除数或余数中减去除数这两种操作完 成。
2012-8-28 13
例7. 计算两个二进制数1010和111之商。
解:
1.0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 KK 余数
反码
00011010 11100101 00101101 11010010
补码
00011010 11100110 00101101 11010011
2012-8-28
23
在两个同符号数相加时,它们的绝对值 之和不可超过有效数字位所能表示的 最大值,否则会得出错误的计算结果。 溢出
例9 试用4位二进制补码计算5+7。 解:因为(5+7)补=(5)补+(7) 补
所以,10110110+00101100=11100010
2012-8-28 4
2. 减法运算
规则:
0-0=0 1-0=1 借位为0 借位为0
2012-8-28
1-1=0
0-1=1
借位为0
借位为1
5
例:计算11000100-00100101 解: 借位 0111 1110
第二节 二进制算术运算
二进制算术运算的特点
反码、补码和补码运算
2012-8-28
1
一、二进制算术运算的特点
当两个二进制数码表示两个数量大小时,它们之 间可以进行数值运算,这种运算称为算术运算。
二进制算术运算和十进制算术运算的规则基本相 同, 唯一的区别在于二进制数是“逢二进一”而不是 十进制数的“逢十进一”。
所以,1100×1001=1101100
2012-8-28 10
另外,乘法运算也可以采用加法和左移的方法实
现,算法如下:
1)令部分积=0; 2)如果乘数的当前位=1,则将被乘数加到 部分积上,否则不加;
3)将被乘数左移1位;
4)转到2),直到乘数的所有位都检查完。 下面,用加法和左移的方法重做上例。
被减数
减数 差
1100 0100
0010 0101 1001 1111
所以,11000100-00100101=10011111
2012-8-28 6
例3 .计算两个二进制数1010和0101的和。
解:
1 0 1
0 1 1
1 0 1
0 1 1
例4. 计算两个二进制数1010和0101的差。 解:
1100000
1101100
运算结束,被乘数不再左移
所以,1100×1001=1101100。可以看出,这与前一种方法的结 果是一样的,但后一种方法更便于计算机实现,因为移位是计算机的 2012-8-28 12 一种最基本的操作。
除法运算
1.11… 0101 1001 0101 1000 0101 0110 0101 0010
+13 +10 +23 -13 +10 -3 0 01101 0 01010 0 10111 1 10011 0 01010 1 11101 +13 0 01101 1 10110 -10 +3 (1) 00011 0 1 10011 -13 1 10110 -10 1 -23 (1) 01001
若将两个加数的符号位和来自最高有效数字位的
×0 1 0 1
1 0 1 0 0 0 0 0 1 0 1 0 + 0 0 0 0 1 1 0 0 1 0
2012-8-28
9
例6:计算1100×1001 解:按照十进制乘法的运算过程,有 1100 × 1001 1100 0000 0000 1100 1101100
2012-8-28
2
1. 加法运算
规则:
0+0=0
0+1=1
进位为0
进位为0
2012-8-28
1+0=1 1+1=0
进位为0 进位为1
3
例:计算10110110+00101100
解:
进位
0111 1000
被加数
加数 和
1011 0110
0010 1100 1110 0010
进位相加,得到的结果(舍弃产生的进位)就是 和的符号。
2012-8-28
26
二进制补码转换为十进制的步骤
(1)如果二进制补码为正数(符号位为0),直
接进行二进制—十进制转换。 (2)如果二进制补码为负数(符号位为1),其 十进制求法如下:
①将二进制补码按位求反; ②加1得到二进制数原码; ③进行二进制—十进制转换。 例111101补=100010求反+1=100011= -310 101001补=110110求反+1=110111= -2310
=0101+0111
0 0 1 1 1 0 1 0 1 1 0
=1100
解决溢出的办法:进行位扩展。
2012-8-28
1
24
溢出的判别
如何判断是否产生溢出?
)
)
4 3 7
2 6 8
0 0 0
1 0 1
0 1 1
0 1 1
)
பைடு நூலகம்
5 3 8
1 1 1
2012-8-28 14
二进制算术运算的特点 算术运算:1、和十进制算数运算的规则 相同 2、逢二进一 特 点:加、减、乘、除 全部可以用移位和 相加这两种操作实现。简化了电路结构
所以数字电路中普遍采用二进制算数运算
2012-8-28
15
二、反码、补码和补码运算
有符号二进制数的表示 :
二进制数的最高位表示符号位,且用0表示
N n (2 1) N
(当N为正数) (当N为负数)
22
( N )INV
2012-8-28
[例10]:写出带符号位二进制数00011010(+26)、 10011010(-26)、00101101(+45)和10101101 (-45)的反码和补码。
原码
00011010 10011010 00101101 10101101
1 0 0
2012-8-28
0 1 1
1 0 0
0 1 1
7
3. 乘法运算
规则: 0×0=0
0×1=0
1×0=0 1×1=1 二进制乘法的运算方法与十进制乘法的运算 方法类似。 2012-8-28
8
例5. 计算两个二进制数1010和0101的积。 解:
1 0 1 0
2012-8-28 27
休息一下
2012-8-28
28
2012-8-28 20
2. 二进制补码的减法运算 减法运算的原理:减去一个正数相当于加上一个负数 AB=A+(B),对(B)求补码,然后进行加法运算。 例8 试用4位二进制补码计算52。
解:因为(52)补=(5)补+(2) 补 =0101+1110 =0011 所以 52=3
0 1 0 1 1 1 1 0
0 1 0
1 0 0
1 1 0
0
1
0 0 1
0 1 0
1 1 0
0 0 0
)
3 6 9
1 1 0
1 0 1
0 1 1
1 0 1
0
1
当方框中的进位位与和数的符号位(即b3位)相同 时,则运算结果是错误的,产生溢出。
2012-8-28 25
[例10]:用二进制补码运算求出13+10、13-10、 -13+10、-13-10。
(+11)D =(0 1011) B
(11)D =(1 1011) B
2012-8-28
16
在做减法运算时,如果两个数是用原码表
示的,则首先需要比较两数绝对值的大小, 然后以绝对值大的一个作为被减数、绝对 值小的一个作为减数,求出差值,并以绝 对值大的一个数的符号作为差值的符号。 这个操作过程比较麻烦,而且需要使用数 值比较电路和减法运算电路。
自动丢弃
1
0 0 1 1
2012-8-28
21
对于有效数字(不包括符号位)为n位的二进制数N, 它的补码(N)COMP表示方法为 (当N为正数) N
( N )COMP n 2 N
(当N为负数)
正数的补码与原码相同,负数的补码等于2n-N 。 为避免在求补码的过程中做减法运算,通常是先求出 N的反码,然后在负数的反码上加1而得到补码。
2012-8-28
17
如果用两数的补码相加代替上述减法运算,则计算 过程中就无需使用数值比较电路和减法运算电路了, 从而使减法运算器的电路结构大为简化。
10-5的减法运算 可以用10+7的加 法运算代替。
因为5和7相加正好等于产生进位的模数12,所以称7 为-5对模12 的补数,也称为补码(complement)。 2012-8-28 18
2012-8-28 11
解:按照移位加的算法,有
乘 数
被乘数 1100
部分积 0000 1100
1 0 0 1 乘数为1,加被乘数到部分积上
被乘数左移1位
乘数为0,只将被乘数左移1位 乘数为0,只将被乘数左移1位 乘数为1,加被乘数到部分积上
11000
110000
在舍弃进位的条件下,减去某个数可以用加上它的补 码来代替。这个结论同样适用于二进制数的运算。
1011-0111=0100的减法运算,在舍弃进位的条件下, 可以用1011+1001=0100的加法运算代替。
1001是0111对模16的补码。 2012-8-28
19
带符号二进制数的减法运算
二进制数的补码表示 补码或反码的最高位为符号位,正数为0,负 数为1。 当二进制数为正数时,其补码、反码与原码相 同。 当二进制数为负数时,原码符号位不变,将原 码的数值位逐位求反,然后在最低位加1得到补 码。
二进制数的除法运算能通过若干次的“除数右移1 位”和从被除数或余数中减去除数这两种操作完 成。
2012-8-28 13
例7. 计算两个二进制数1010和111之商。
解:
1.0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 KK 余数
反码
00011010 11100101 00101101 11010010
补码
00011010 11100110 00101101 11010011
2012-8-28
23
在两个同符号数相加时,它们的绝对值 之和不可超过有效数字位所能表示的 最大值,否则会得出错误的计算结果。 溢出
例9 试用4位二进制补码计算5+7。 解:因为(5+7)补=(5)补+(7) 补
所以,10110110+00101100=11100010
2012-8-28 4
2. 减法运算
规则:
0-0=0 1-0=1 借位为0 借位为0
2012-8-28
1-1=0
0-1=1
借位为0
借位为1
5
例:计算11000100-00100101 解: 借位 0111 1110
第二节 二进制算术运算
二进制算术运算的特点
反码、补码和补码运算
2012-8-28
1
一、二进制算术运算的特点
当两个二进制数码表示两个数量大小时,它们之 间可以进行数值运算,这种运算称为算术运算。
二进制算术运算和十进制算术运算的规则基本相 同, 唯一的区别在于二进制数是“逢二进一”而不是 十进制数的“逢十进一”。
所以,1100×1001=1101100
2012-8-28 10
另外,乘法运算也可以采用加法和左移的方法实
现,算法如下:
1)令部分积=0; 2)如果乘数的当前位=1,则将被乘数加到 部分积上,否则不加;
3)将被乘数左移1位;
4)转到2),直到乘数的所有位都检查完。 下面,用加法和左移的方法重做上例。
被减数
减数 差
1100 0100
0010 0101 1001 1111
所以,11000100-00100101=10011111
2012-8-28 6
例3 .计算两个二进制数1010和0101的和。
解:
1 0 1
0 1 1
1 0 1
0 1 1
例4. 计算两个二进制数1010和0101的差。 解:
1100000
1101100
运算结束,被乘数不再左移
所以,1100×1001=1101100。可以看出,这与前一种方法的结 果是一样的,但后一种方法更便于计算机实现,因为移位是计算机的 2012-8-28 12 一种最基本的操作。
除法运算
1.11… 0101 1001 0101 1000 0101 0110 0101 0010
+13 +10 +23 -13 +10 -3 0 01101 0 01010 0 10111 1 10011 0 01010 1 11101 +13 0 01101 1 10110 -10 +3 (1) 00011 0 1 10011 -13 1 10110 -10 1 -23 (1) 01001
若将两个加数的符号位和来自最高有效数字位的
×0 1 0 1
1 0 1 0 0 0 0 0 1 0 1 0 + 0 0 0 0 1 1 0 0 1 0
2012-8-28
9
例6:计算1100×1001 解:按照十进制乘法的运算过程,有 1100 × 1001 1100 0000 0000 1100 1101100
2012-8-28
2
1. 加法运算
规则:
0+0=0
0+1=1
进位为0
进位为0
2012-8-28
1+0=1 1+1=0
进位为0 进位为1
3
例:计算10110110+00101100
解:
进位
0111 1000
被加数
加数 和
1011 0110
0010 1100 1110 0010
进位相加,得到的结果(舍弃产生的进位)就是 和的符号。
2012-8-28
26
二进制补码转换为十进制的步骤
(1)如果二进制补码为正数(符号位为0),直
接进行二进制—十进制转换。 (2)如果二进制补码为负数(符号位为1),其 十进制求法如下:
①将二进制补码按位求反; ②加1得到二进制数原码; ③进行二进制—十进制转换。 例111101补=100010求反+1=100011= -310 101001补=110110求反+1=110111= -2310
=0101+0111
0 0 1 1 1 0 1 0 1 1 0
=1100
解决溢出的办法:进行位扩展。
2012-8-28
1
24
溢出的判别
如何判断是否产生溢出?
)
)
4 3 7
2 6 8
0 0 0
1 0 1
0 1 1
0 1 1
)
பைடு நூலகம்
5 3 8
1 1 1
2012-8-28 14
二进制算术运算的特点 算术运算:1、和十进制算数运算的规则 相同 2、逢二进一 特 点:加、减、乘、除 全部可以用移位和 相加这两种操作实现。简化了电路结构
所以数字电路中普遍采用二进制算数运算
2012-8-28
15
二、反码、补码和补码运算
有符号二进制数的表示 :
二进制数的最高位表示符号位,且用0表示
N n (2 1) N
(当N为正数) (当N为负数)
22
( N )INV
2012-8-28
[例10]:写出带符号位二进制数00011010(+26)、 10011010(-26)、00101101(+45)和10101101 (-45)的反码和补码。
原码
00011010 10011010 00101101 10101101
1 0 0
2012-8-28
0 1 1
1 0 0
0 1 1
7
3. 乘法运算
规则: 0×0=0
0×1=0
1×0=0 1×1=1 二进制乘法的运算方法与十进制乘法的运算 方法类似。 2012-8-28
8
例5. 计算两个二进制数1010和0101的积。 解:
1 0 1 0
2012-8-28 27
休息一下
2012-8-28
28
2012-8-28 20
2. 二进制补码的减法运算 减法运算的原理:减去一个正数相当于加上一个负数 AB=A+(B),对(B)求补码,然后进行加法运算。 例8 试用4位二进制补码计算52。
解:因为(52)补=(5)补+(2) 补 =0101+1110 =0011 所以 52=3
0 1 0 1 1 1 1 0
0 1 0
1 0 0
1 1 0
0
1
0 0 1
0 1 0
1 1 0
0 0 0
)
3 6 9
1 1 0
1 0 1
0 1 1
1 0 1
0
1
当方框中的进位位与和数的符号位(即b3位)相同 时,则运算结果是错误的,产生溢出。
2012-8-28 25
[例10]:用二进制补码运算求出13+10、13-10、 -13+10、-13-10。