数字电路与系统答案(丁志杰)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章习题
1-1 例1.2.12中转换前后两个数的绝对值哪个大?为什么?
答:转换前大。因为转换后舍去了后边的小数位。
1-2 将下列二进制数分别转换为八进制数、十六进制数和十进制数。
11001101.101,10010011.1111
解:(11001101.101)2 =(11 001 101.101)2= ( 315.5)8
=(1100 1101.1010)2 =( CD.A)16
=(128+64+8+4+1+0.5+0.125)10=(205.625)10
(10010011.1111)2 =(1001 0011.1111)2= (93.F)16
=(10 010 011.111 100)2 =( 223.74)8
=(128+16+2+1+0.5+0.25+0.125+0.0625)10=(147.9375)10
1-3 将下列十进制数转换为二进制、八进制和十六进制数。
121.56,73.85
解:1. 0Å1Å3Å7Å15Å30Å60Å121 0.56Æ0.12Æ0.24Æ0.48Æ0.96Æ0.92
1 1 1 1 0 0 1 1 0 0 0 1
所以:(121.56)10=(1111001.10001)2=(171.42)8=(79.88)16
2. 0Å1Å2Å4Å9Å18Å36Å73 0.85Æ0.7Æ0.4Æ0.8Æ0.6Æ0.2Æ0.4
1 0 0 1 0 0 1 1 1 0 1 1 0
(73.85)10=(1001001.11011)2=(111.66)8=(49.D8)16
1-4 将下列十六进制数转换为二进制、八进制和十进制数。
89.0F,E5.CD
解:(89.0F)16=(10001001.00001111)2=(211.036)8=(8*16+9+15/256)10=(137. 0.05859375)10 1-5 试求例1.2.17的转换误差,比较例1.2.12的转换误差,哪个大?为什么?
答:例1.2.12的误差大。例1.2.17实际上转换了15位二进制小数,而例1.2.12只转换了5位。
1-6 用十六位二进数表示符号数。试分别写出原码、反码和补码可表示的数值范围。
解:原码 –(215-1) ~ +(215-1);
反码 –(215-1) ~ +(215-1);
补码 –215 ~ +(215-1)
1-7 设n=8,求下列二进制数的反码:
101101,-101101,10100,-10100
解:先补齐8位,再求反;正数的反码是原码,负数的反码需求反。
(101101)反=00101101
(-101101)反=11010010
(10100)反=00010100
(-101101)反=11101011
1-8 设n=8,求下列二进制数的补码:
101101,-101101,10100,-10100,101.001,-101.001
解:先补齐8位,再求补;正数的补码是原码,负数的补码需求补。
(101101)补=00101101
(-101101)补=11010011
(10100)补=00010100
(-101101)补=11101100
(101.001)补=00000101.001
(-101101)补=11111010.111
1-9 为什么将N求反加1即为N的补码?
答:(N)补=2n-N=(2n-1-N)+1
2n-1为n位全1。(2n-1-N)为N的反码。再加1即得补码。得证。
1-10 试证明利用补码进行加减运算的正确性。
证明:设有两个n位正数N1、N2,则-N1、-N2的补码分别为2n-N1和2n-N2。在n位加法器中进行加减运算时共有如下四种情况:
①N1+N2 就是两个正数相加,结果为正数;
②N1-N2=N1+(2n-N2)= 2n-(N2- N1),结果取决于N2-N1的符号:如果N2>N1,
则结果为负数,2n-(N2- N1)就是-(N2- N1)的补码;如果N2< N1,则结果为2n+(N1-N2),由于N1-N2>0,而2n为第n-1位的进位,位于第n位(n位运算器的最位位为第n-1
位)上,在n位运算器之外,所以结果为N1-N2,是正数;
③N2-N1,结果与N1-N2类似;
④-N1-N2=(2n-N1)+(2n-N2)=2n+[2n -(N1+N2)],其中第1个2n为第n-1
位的进位,位于在第n位上,在n位运算器之外,舍去不管;而[2n-(N1+N2)]就是
负数-(N1+N2)的补码。
由此就证明了用补码进行加减运算的正确性。
1-11 设A=65,B=56,n=8。试用补码求下列运算,并验证其结果是否正确:A+B,A-B,-A+B,-A-B
解:(A)补=01000001 (-A)补=10111111 (B)补=00111000 (-B)补=11001000
A+B A-B -A+B -A-B
10111111
01000001 01000001 10111111
+ 00111000 + 11001000 + 00111000 + 11001000
01111001 100001001 11110111 110000111 所以:A+B=01111001,A-B=00001001,-A+B=11110111,-A-B=10000111 A+B=121 A-B=9 -A+B=-9 -A-B=-121
结果正确。
1-12设A=65,B=75,n=8。试用补码求下列运算,并验证其结果是否正确:A+B,A-B,-A+B,-A-B
如果结果有错,为什么?
解:(A)补=01000001 (-A)补=10111111 (B)补=01001011 (-B)补=10110101
A+B A-B -A+B -A-B
10111111
01000001 01000001 10111111
+ 01001011 + 10110101 + 01001011 + 10110101
10001100 11110110 100001010 101110100 所以:A+B=10001100,A-B=11110110,-A+B=00001010,-A-B=01110100 A+B=-116 A-B=-10 -A+B=+10 -A-B=+116 结果错正确正确错
原因:65+75=140,超出了8位运算器所能表示的范围。
1-13 如何判断补码运算有无溢出?
答:当第n-1位(符号位)和第n-2位(最高数字位)不同时无进位(两正数相加)或不同时有进位(两负数相加)时,有溢出错误发生。可用异或门进行检测。
1-14 试分别写出下列十进制数的8421、5421、2421和余三码。
325,108,61.325