内容发布更新时间 : 2024/12/22 19:54:58星期一 下面是文章的全部内容请认真阅读。
第一章 数字逻辑概论
1.1 数字电路与数制信号
1.1.1 试以表1.1.1所列的数字集成电路的分类为依据,指出下列IC器件属于何种集成度器件:(1)微处理器;(2)计数器;(3)加法器;(4)逻辑门;(5)4兆位存储器。
解:依照表1.1.1所示的分类,所列的五种器件:(1)、(5)属于大规模;(2)、(3)属于中规模;(4)属于小规模。
1.1.2 一数字信号波形如图题1.1.2所示,试问该波形所代表的二进制数是什么?
解:图题1.1.2所示的数字信号波形的左边为最高位(MSB),右边为最低位(LSB),低电平表示0,高电平表示1。该波形所代表的二进制数为010110100。
1.1.3 试绘出下列二进制数的数字波形,设逻辑1的电压为5V,逻辑0的电压为0V。 (1)001100110011 (2)0111010 (3)1111011101
解:用低电平表示0,高电平表示1,左边为最高位,右边为最低位,题中所给的3个二进制数字的波形分别如图题1.1.3(a)、(b)、(c)所示,其中低电平为0V,高电平为5V。
1.1.4一周期性数字波形如图1.1.4所示,试计算:(1)周期;(2)频率;(3)占空比。
解: 因为图题1.1.4所示为周期性数字波,所以两个相邻的上升沿之间持续的时间为周期,T=10ms。
频率为周期的倒数,f=1/T=1/0.01s=100Hz。
占空比为高电平脉冲宽度与周期的百分比,q=1ms/10ms×100%=10%。
1.2 数制
1.2.1 一数字波形如图1.2.1所示,时钟频率为4kHz,试确定:(1)它所表示的二进制数;(2)串行方式传送8位数据所需要的时间;(3)以8位并行方式传送的数据时需要的时间。
解: 该波形所代表的二进制数为00101100。 时钟周期T=1/f=1/4kHz=0.25ms。
串行方式传送数据时,每个时钟周期传送1位数据,因此,传送8位数据所需要的时间t=0.25ms×8=2ms。
8位并行方式传送数据时,每个时钟周期可以将8位数据同时并行传送,因此,所需的时间t=0.25ms。
1.2.2 将下列十进制数转换为二进制数、进制数和十六进制数(要求转换误差不大于2-4): (1) 43 (2)127 (3)254.25 (4)2.718
解: 此题的解答可分为三部分,即十-二、十-八和十-十六转换。解题过程及结果如下: 1.十-二转换
(1)将十进制整数43转换为二进制数,采用\短除法\,其过程如下:
低位高位
从高位到低位写出二进制数,可得(43)D=(101011)B。
(2)将十进制数127转换为二进制数,可以采用\短除法\,也可以采用\拆分法\。 采用\短除法\,将127逐次除2,所得余数即为二进制数,(127)D=(1111111)B。 采用\拆分法\,由于27=128,所以可得(127)D =27-1=(10000000)B -1= (1111111)B。
(3)将十进制数254.25转换为二进制数,由两部分组成:整数部分(254)D=(11111110)B,小数部分(0.25)D=(0.01)B。
对于小数部分的十-二进制转换,才用\连乘法\,演算过程如下: 0.25×2=0.5??0??b-1 高位 ↓ 0.5 ×2=1.0??1??b-2 低位
将整数部分和小数部分的结果相加得(254.25)=(11111110.01)。为了检查转换结果的误差,可以将转换结果返回到十进制数,即27+26+25+24+23+22+21+2-2=254.25,可见没有转换误差。
(4)将十进制数2.718转换为二进制数,由两部分组成:整数部分(2)D=(10)B;小数部分(0.718)D=(0.10110111)B,其演算过程如下: 0.718×2=1.436??1??b-1 高位 0.436×2=0.872??0??b-2 0.872×2=1.744??1??b-3
0.744×2=1.488??1??b-4 0.488×2=0.976??0??b-5 0.976×2=1.952??1??b-6 0.952×2=1.904??1??b-7
0.904×2=1.808??1??b-8 低位
两部分结果之和为(2.718)D=(10.10110111)B=21+2-1+2-3+2-4+2-6+2-7+2-8≈2.6875 转换误差为2.718-2.6875=0.0305<2-4
要求转换结果不大于2-4,只要保留二进制数小数点后4位即可。这里二进制结果取小数点后8位数是为了便于将其转换为十六进制数。 2.十-八转换
十进制到八进制的转换方法有两种:一是利用“短除法”,直接将十进制数转换为八进制数;二是首先将十进制数转换为二进制数,然后再将二进制数转换为八进制数。
现以(254.25)D转换为八进制数为例来说明。对于整数部分,采用“短除法”,逐步除8求得:
8254……余6……o0831……余7……o1 83……余3……o20
由此得(254)D=(376)O
对于小数部分0.25,仿照式(1.2.7),对应b-1b-2...b-n,这里变为o-1o-2…o-n,其演算过程如下:
0.25×8=2.0……2……o-1 所以,(254.25)D =(376.2)o
采用第二种方法时,首先将十进制数转换为二进制数,将每3位二进制数对应于1位八进制数,整数部分由低位到高位划分,小数部分不够3位的,低位补0.
所以得(254.25)D=(11 111 110.010)B=(376.2)O
因此,前述4个十进制数转换为二进制数后,可以将各个二进制数从小数点开始,整数部分从右向左,小数部分从左向右,每3位二进制数表示1位八进制数,可得:
(1)(43)D=(101 011)B =(53)O (2)(127)D=(1 111 111)B=(177)O (3)(254.25)D=(11 111 110.010)B=(376.2)O (4)(2.718)D=(10.101 100)B=(2.54)O 1.2.3 将下列二进制数转换为十六进制数: (1) (101001) B (2) (11.01101) B
解:由小数点开始,整数部分从右向左,小数部分从左向右,每4位二进制数表示1位十六进制数,不够4位的补0,可得: (1) (10 1001)B=(0010 1001) B=(29) H
(2) (11.01101) B=(0011.0110 1000) B=(3.68) H
1.2.4 将下列十进制数转换为十六进制数(要求转换误差不大于16-4): (1) (500)D (2) (59)D (3) (0.34)D (4) (1002.45) D
解: 将十进制数转换为十六进制数的方法有两种: 一是利用\短除法\,逐步除16求得;二是首先将十进制数转换为二进制数,然后由小数点开始,整数部分从右向左,每4位二进制数表示1位十六进制数。在习题1.2.2中介绍了第二种方法,可参考.这里采用\短除法\(1) 将500连除以16如下:
16500……余41631……余15 161……余10由此得(500)D =(1F4)H
(2) 将29连除以16如下:
1659……余11163……余30由此(59) D=(3B) H
(3) 将0.34连乘16如下:
0.34?160.44?160.04?160.64?165.44……57.04……70.64……010.24……10
由此得(0.34) D=(0.570A) H 转换误差校核
(0.570A)H=5×16-1+7×16-2+10×16-4=0.339 996
转换误差为0.34-0.339 996=0.000 004<16-4 (4) 将(1 002.45)D分为整数和小数两部分转换 将整数1 002连除以16如下:
161002……余101662……余14163……余30所以得(1002)D=(3EA)H 将小数部分连乘16如下:
0.45?16
7.2……73.2……33.2……33.2……3
0.2?160.2?160.2?16故(0.45)D=(0.733 3)H 转换误差校核
(0.733 3)H=7×16-1+3×16-2+3×16-3+3×16-4=0.449 997 转换误差为 0.45-0.449 997=0.000003<16-4
1.2.5 将下列十六进制数转换为二进制数: (1) (23F.45)H (2)(A040.51)H
解:将每位十六进制数用4位二进制数表示,并填入原数中相应的位置,得 (1) (23F.45)H =(0010 0011 1111.0100 0101)B (2) (A040.51)H = (1010 0000 0100 0000.0001) B
1.2.6 将下列十六进制数转换为十进制数:
(1) (103.2)H (2)(A45D.0BC)H
解:将十六进制数按权展开相加,即可得十进制数:
(1) (103.2)=1×162+3×160+2×16 -1 =(259.1252)D
(2) (A45D.0BC)H =10×163 +4×162 +5×161 +13×160 +11×16-2 +12×16-3 =40960+1024+80+13+0.04297+0.00293 =(42077.0459) D
1.3二进制数的算术运算
1.3.1 写出下列二进制数的原码 反码和补码:
(1) (+1110)B (2)(+10110)B (3)(-1110)B (4)(-10110)B
解:二进制数为正数时,其原码、反码、补码相同;二进制数为负数时,将原码的数值位逐位求反(即得到反码),然后在最低位加1得到补码。所以: (1) A原=A反=A补=1110 (2) A原=A反=A补=10110
(3) A原=11110,A反=10001,A补=10010