第1章 数制与编码_第1页
第1章 数制与编码_第2页
第1章 数制与编码_第3页
第1章 数制与编码_第4页
第1章 数制与编码_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字电路

与系统设计DigitalCircuit &SystemDesign课程简介数字技术的专业基础课数字技术是现代“高科技”之一是互联网的硬件基础数字技术的应用领域:数字通信家用电器娱乐产品测量与控制军工、航天。。。课程简介内容:数制与编码逻辑代数基础逻辑门电路组合电路的分析与设计触发器常用时序电路课程简介时序电路的分析与设计脉冲波形的产生与整形数模、模数变换器可编程器件概述数字系统设计方法数制与编码计算机系统中使用的是二进制数人类在日常生活中使用的则是十进制数建立二者之间的联系为记忆、阅读方便,人们还经常使用八进制和十六进制,因此我们也要熟悉它们与二进制及十进制之间的关系字符,如数字、字母、运算符、各种符号。汉字、音频、图像、视频等也是用二进制码表示数制任意一个数均可写为多项式形式

(345.67)10

=3×102+4×101+5×100+6×10-1+7×10-2

Digit权(Weight)十进制数的基数为10R进制数的基数为Rn位整数、m位小数的R进制数N:(N)R=Kn-1Kn-2···K0.K-1···K-m=Kn-1Rn-1+Kn-2Rn-2+···

+K0R0+K-1R-1+···+K-mR-m=∑KiRi其中R为R进制数的基数数制二、八、十、十六进制数对于十进制有:(N)10=∑di·10idi的取值范围:0,1,2…9对于二进制有:(N)2=∑bi·2ibi的取值范围:0,1对于八进制有:(N)8=∑qi·8iqi的取值范围:0,1,2…7对于十六进制有:(N)16=∑hi·16ihi的取值范围:0,1…9,A,B,C,D,E,F二、八、十、十六进制数二进制:Binary,B八进制:Octal,O(Q)十进制:Decimal,D十六进制:Hexadecimal,H二、八、十六进制到十进制的转换

直接按加权相加即可。例1

(101.001)2=1·22+0·21+1·20+0·2-1

+0·2-2+1·2-3=(5.125)10例2

(32.56)8=3·81+2·80+5·8-1+6·8-2

=(26.71875)10例3(ED.A)16=14·161+13·160+10·16-1

=(237.625)10十进制 二进制 八进制 十六进制

0

0000

00

0

1

0001

01

1

2

0010

02

2

3

0011

03

3

4

0100

04

4

5

0101

05

5

6

0110

06

6

7

0111

07

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

八进制之间的转换

每三位二进制数对应一位八进制数转换时从小数点向左、向右每3位为一组,直接写出对应的八进制数即可。小数点后最后一组要补足3位。

(10010111.1101)2=(010

010

111.110

100)2=(227.64)8(227.64)Q=(010

010

111.110

100)B

=(10010111.1101)B

十六进制之间的转换四位二进制数对应一位十六进制数转换时从小数点向左、向右每4位为一组,直接写出对应的十六进制数即可。小数点后最后一组要补足4位。

(110110111.011)2=(0001

1011

0111.0110)2=(1B7.6)16(1C7.6)H=(0001

1100

0111.0110)B=(111000111.011)B八

十六进制之间的转换八进制数到十六进制数之间的转换通过转换为二进制数作为中间过程

(1C7.6)16=(0001

1100

0111.0110)2=(111

000

111.011)2 =(707.3)8(707.3)8=(111

000

111.011)2 =(0001

1100

0111.0110)2 =(1C7.6)16数制转换如果要将数N由R1进制转换到R2进制,而R1=R2k,其中k为正整数,则转换时只要N的每一位分别写出它所对应的R2进制数即可。注意:除整数部分最高位、小数部分最低位外,其它位的无效0不能省;如果要将数N由R1进制转换到R2进制,而R1k=R2,其中k为正整数,则转换时只要将数N从小数点分别向左、向右每k位一组分别写出它所对应的R2进制数即可。注意:小数部分最低位不足k位时,要补0整数部分和小数部分分别进行转换整数部分用连除法(59)10=(?)2解: 所以(59)10=(111011)2

十进制到二进制的转换

5929

0

1

3

7

14

1

1

1

0

1

1

b5

b4

b3

b2

b1

b0

/2

/2

/2

/2

/2

/2

十进制到二进制的转换小数部分用连乘法(0.8125)10=(?)2解: 所以(0.8125)10=(0.1101)2精度问题:转换后小数位数的确定0.8125

0.625

0.25

0.5

0

1

1

0

1

b-1

b-2

b-3

b-4X2

X2

X2

X2

十进制到二进制的转换整数、小数分别进行转换,转换完成后,合到一起即可。(59.8125)10=(111011.1101)2

小数转换的精度转换后小数位数的确定给定位数根据精度确定小数转换的精度(0.2)10=(0.00110011……)2如果取8位小数,则为0.00110011如果要求精度为1%,则应满足

[(0.2)10-(N)2]/(0.2)10<=0.01或这样估算位数:0.2*1%=0.0022-9=0.001953125<0.002,所以需要9位(0.001100110)2=(0.19921875)10十进制到八进制的转换

整数部分和小数部分分别进行转换整数部分用连除法,连除以8例:(59)10=(?)8解:0

7

59 73 q1q0

所以(59)10=(73)8十进制到八进制的转换小数部分用连乘法,连乘以8(0.8125)10=(?)8解:0.8125

0.5

0 64 q-1q-2

所以(0.8125)10=(0.64)8十进制到十六进制的转换

整数部分和小数部分分别进行转换整数部分用连除法,连除以16

例:(59)10=(?)16解:0

3

59 311 3B h1h0

所以(59)10=(3B)16十进制到十六进制的转换小数部分用连乘法,连乘以16(0.8125)10=(?)16解:0.81250 13 D h-1

所以(0.8125)10=(0.D)16十进制到八、十六进制的转换另一种方式是先将十进制数转换为二进制数,再转换为八、十六进制数两种方法的比较:转换为二进制数算式较长,但运算简单;反之,算式较短,但运算较繁十进制到二、八、十六进制的转换(59.8125)10=(111011.1101)2

=(73.64)8

=(3B.D)16自己选择使用哪种方法数制转换熟悉以后可用快速算法(110111)2=(?)106位全1为6363-8=55所以:(110111)2=(55)10(1001001)2=(?)1064+8+1=73所以:(1001001)2=(73)10数制转换快速算法(35)10=(?)235=32+3所以:(35)10=(100011)2数制转换2i,2i-1,i=0,1,…10,应该非常熟悉:29=512 29-1=511210=1024 210-1=1023210=1024≈1000210=1K216=26*210=64K220=1M230=1G二进制符号数的表示方法

所谓符号数就是带正、负号的数在数字系统中所有信息均由二进制码表示数的正、负也由二进制码表示常用的符号数表示法有三种:原码表示法反码表示法补码表示法原码表示法

用1位二进制数表示符号:0表示正数,1表示负数数的大小以该数的绝对值表示符号位通常放在最高位如某数字系统中用8位存储器存放数据,其中最高位为符号位,其余7位为数的绝对值原码表示法设n=8,二进制原码表示法(+37)10+010010100100101(-37)10-010010110100101(+0)10+000000000000000(-0)10-000000010000000(+127)10+111111101111111(-127)10-111111111111111范围:-(28-1-1)~+(28-1-1),共255个数

0有两种表示方法:+0,-0反码(1’sComplement)

二进制数每一位上的数字不是0就是1定义0的反码为1,1的反码为0一个二进制数的反码定义为将二进制数的每一位分别求反而得到的二进制码例:N=10011011则:(N)反=01100100符号数的反码表示法

用1位二进制数表示符号:0表示正数,1表示负数正数的大小用原码表示,而负数的大小则以该数的反码表示符号位通常放在最高位如某数字系统中用八位存储器存放数据,其中最高位为符号位,其余7位存放该数的反码符号数的反码表示法设n=8,二进制反码表示法(+37)10+0100101

00100101(-37)10-0100101

11011010(+0)10+000000000000000(-0)10-0000000

11111111(+127)10+111111101111111(-127)10-1111111

10000000范围:-(2n-1-1)~+(2n-1-1)+0,-0的表示形式不同补码(2’sComplement)

设数N为有n位整数、m位小数的二进制数,则N的补码定义为:(N)补.n=2n-N。 由定义可知:N的补码与N的大小有关,还与整数位数n有关;与小数位数无关设n=8,则(11001)补.8=28-11001=11100111(11001.0101)补.8=28-11001.0101 =11100110.1011补码的求法

方法一:利用补码的定义可以求一个数的补码,但较为繁琐一般不用

方法二:将原码补足n位后求反加1即得其补码求(11001)在n=8时的补码补齐8位:00011001求反:11100110加1:11100111补码的求法方法二的证明:N的补码为

2n-N而2n-1为n位全1100000000-111111111=(2n-1-N)+1补码的求法2n-1-N就是N的反码111111110011010011001011再加1得证别名反码又称为1的补码(1’scomplement)2n-1-N而补码又称为2的补码(2’scomplement)2n-NN+(N)补=N+2n-N=2n

((N)补)补=N补码的求法方法三:将原码补足n位后,从右往左第一个1及其右边的0不变,其余各位求反即得N的补码N=00100100=00100

100 (N)补.8=11011

100依据:100求反加1仍为100,其它位求反不变补码的求法小数的补码的求法:设整数部分位数n=8,求N=10010.01的补码整数部分补齐8位00010010.01求反:11101101.10加1:11101101.11符号数的补码表示法

用1位二进制数表示符号:0表示正数,1表示负数正数的大小用原码表示,而负数的大小则以该数的补码表示符号位通常放在最高位如某数字系统中用八位存储器存放数据,其中最高位为符号位,其余7位存放该数的补码符号数的补码表示法

设n=8,二进制补码表示法(+37)10+0100101

00100101(-37)10-0100101

11011011(+0)10+000000000000000(-0)10-0000000

00000000(+127)10+111111101111111(-127)10-1111111

10000001(-128)10-1000000010000000范围:-2n-1~+(2n-1-1)+0,-0的表示形式相同补码的求法设n=8,求下列二进制数的补码1101,101,10111

这只是求补练习设n=8,求下列二进制数的补码-1101,101,-11011

这是考补码和符号数两个概念利用补码求符号数的加减运算

如果将加数和被加数均以其补码表示,则只用加法运算器就可完成加减运算显然这样做可以节省硬件,降低生产成本运算时符号位与其它位一样参与运算若符号位产生进位,则在结果中忽略该进位,不予考虑利用补码求符号数的加减运算

设n=8,有两个正数A=10011,B=1101。试用补码求A+B,A-B,B-A,-A-B解:(A)补.8=00010011,(B)补.8=00001101 (-A)补.8=11101101,(-B)补.8=11110011A+B=10000000010011+0000110100100000-A+B=1111101011101101+0000110111111010A-B=11000010011+11110011100000110-A-B=1110000011101101+11110011111100000利用补码求符号数的加减运算

在运算时符号位如同其它位一样参与运算运算结果若符号位有溢出,则溢出位在结果中不予考虑运算结果以补码形式表示同学们可验证结果的正确性利用补码求符号数的加减运算

设有两个n位正数N1、N2,则-N1、-N2的补码分别为2n-N1和2n-N2

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,是正数利用补码求符号数的加减运算

-N1-N2=(2n-N1)+(2n-N2)=2n+[2n-(N1+N2)]其中第一个2n为第n-1位的进位,位于在第n位上,在n位运算器之外,舍去不管而[2n-(N1+N2)]就是负数-(N1+N2)的补码由此可知利用补码进行加减运算的正确性利用补码求符号数的加减运算设n=8,有两个正数A=110011,B=1101101。试用补码求A+B,A-B,B-A,-A-B。解:(A)补.8=00110011,(B)补.8=01101101(-A)补.8=11001101,(-B)补.8=10010011A+B=1010000000110011+0110110110100000A-B=1100011000110011+10010011

11000110-A-B=0110000011001101+10010011101100000-A+B=0011101011001101+01101101

100111010利用补码求符号数的加减运算A+B的结果为负数,而-A-B的结果为正数,二者显然错了;而-A+B和A-B结果正确两个符号相异的数相加,结果的绝对值小于任一加数的绝对值所以此时运算结果不会超出n位符号数的表示范围,即不会发生溢出错误利用补码求符号数的加减运算两个正数相加,由于两个数的符号位均为0,所以符号位肯定不会产生进位如果此时两个数的绝对值之和不大于(2n-1-1),则第n-2位(即最高数字位)就不会产生进位,运算结果就正确如果此时两个数的绝对值之和大于(2n-1-1),则第n-2位就会产生进位,这个进位使第n-1位(即符号位)为1,结果成了负数,显然错了。利用补码求符号数的加减运算两个负数相加,由于两个数的符号位均为1,所以此时符号位(第n-1位)肯定有进位如果此时第n-2位有进位,则运算结果为负数,结果正确如果此时第n-2位无进位,则运算结果为正数,结果显然错了利用补码求符号数的加减运算利用符号数的补码进行加减运算时,如果两个加数的绝对值之和大于n位符号数的表示范围,则A+B和-A-B的运算结果就会发生错误这类错误称为溢出Overflow溢出只发生在两个加数的符号位相同时在设计加法器时必须考虑溢出问题,并在溢出时给出报警信号,以提示运算结果出错利用补码求符号数的加减运算当第n-1位(符号位)和第n-2位(最高数字位)不同时有进位(两个负数相加时)或不同时无进位(两个正数相加时)时有溢出发生利用这个原则,就可以设计出逻辑电路,判断有无溢出发生二-十进制编码(BCD码)

BinaryCodedDecimal数字系统中使用的是二进制数,而在许多场合特别是在输入(如键盘等)输出(如显示、打印等)时需要处理十进制数表示0~9十个十进制数字,需要十种组合三位二进制码只有8种组合,不够用四位二进制码有16种组合,可用位数大于四的任意多位二进制数均可用,但那样会造成资源浪费故一般情况下均用四位二进制数对一位十进制数进行编码二-十进制编码(BCD码)用以表示十进制数字的二进制编码称为BCD码从四位二进制码的16种组合中取10种去表示10个十进制数字,共有C1610=16!/(10!·(16-10)!)种取法;而每种取法又有10!种分配方案;故共有16!/6!种可能的BCD编码方法可供选择!当然我们不可能全用十进制数 8421 5421 2421 余3码 余3循环码 备注

0 0000 0000 0000 0011 0010 有效编码

1 0001 0001 0001 0100 0110 2 0010 0010 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论