计算机中的数制和码制.ppt_第1页
计算机中的数制和码制.ppt_第2页
计算机中的数制和码制.ppt_第3页
计算机中的数制和码制.ppt_第4页
计算机中的数制和码制.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1,计算机中的数制和码制,内容提要 数和数制 有符号的二进制数的表示方法及溢出问题 定点数和浮点数 二进制编码,2,1、数和数制,计数制:一种计数的方法,用不同的代码来表示任意数 计算机中使用二进制数(B) 为方便二进制数的记忆,使用十六进制数(H) 为与人们良好沟通,使用十进制数(D),3,十进制数的特点,代码个数:具有10个不同的代码,分别是0、1、2、3、4、5、6、7、8、9 进位规则:逢10进一 权:以10为底的幂 “权”是一种位置系数,4,二进制数的特点,代码个数:具有2个不同的代码,分别是0、1 进位规则:逢2进一 权:以2为底的幂,5,十六进制数的特点,代码个数:具有16个不同的代码,分别是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 进位规则:逢16进一 权:以16为底的幂,6,十进制、二进制、十六进制数码对照表,7,位置计数法(1),同一个数字在不同的数位代表的数值是不同的,这种计数方法称为位置计数法。在位置计数法中,对每一个数位赋予不同的位值,称为权。每个数位上的数字所表示的量是这个数字和该数位的权的乘积。所以一般来说,对于基数为X的任意数可以用多项式表示,8,位置计数法(2),其中: Ki第i位的系数,可以为 0,1,,(X-1)共X个数字符号中任一数字符号; m,n幂指数,均为正整数; Xi第i位的权。,9,书写规则,为了区分不同数制,常用如下方法: 后缀表示法: B二进制;例:1011B O八进制;例:345o(或Q) D十进制(可省略);例:678D(或678) H十六进制;例:8DFH,10,各种数制的相互转换(1),非十进制数转换成十进制数 可将其按定义展开为多项式,再将系数和权均用十进制表示后,按照十进制进行乘法和加法计算,所得结果即为对应的十进制数。 例:二进制整数转换为十进制整数 101000101B=1*28+1*26+1*22+1*20=325D 例:二进制小数转换为十进制小数 0.101001B=1*2-1+1*2-3+1*2-6=0.5+0.125+0.015625=0.640625D,11,各种数制的相互转换(2),十进制数转换成非十进制数 整数部分按照基数进行连除,直到余数为为止,所得的余数序列逆序就为对应的非十进制数;小数部分按照基数进行连乘,直到小数部分为或达到计算要求的精度为止,每次乘积的整数部分序列就为对应的非十进制小数。,12,各种数制的相互转换(3),十进制325整数转换为二进制整数 除基取余法: 除基 余数 ki 2 325 2 162 1 k0 2 81 0 k1 2 40 1 k2 2 20 0 k3 2 10 0 k4 2 5 0 k5 2 2 1 k6 2 1 0 k7 0 1 k8,325D=101000101B,13,各种数制的相互转换(4),例:将十进制数0.625转化为二进制形式。 乘基 整数 ki 0.6252=1.25 1 k-1 0.252=0.5 0 k-2 0.52=1.0 1 k-3 0.625=0.101B,注:如果一个任意十进制数要转换成非十进制数,可以把整数部分和小数 部分分别加以转换,然后把转换后的整数部分和小数部分相加,14,各种数制的相互转换(5),二进制转换成十六进制数 从小数点开始分别向左向右把整数及小数部分每位分成一组,如果不足则补。用十六进制数取代每组的数值,就可得到对应的十六进制数。 例如:二进制数1011101001.110101转换成十六进制数 二进制: 0010 1110 1001 . 1101 0100 十六进制: E . D 1011101001.110101B=2E9.D4H,15,各种数制的相互转换(6),十六进制数转换成二进制数 用对应的位二进制数取代位十六进制数。 例如:十六进制数5C7A.3BH转换成二进制数 十六进制数: C A . B 二进制数: 0101 1100 0111 1010. 0011 1011 5C7A.3BH=101110001111010.00111011B,16,无符号数和有符号数,在计算机中,可以区分正负的类型,称为有符类型,无正负的类型(只有正值),称为无符类型。 当我们指定一个数是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。 当我们指定一个数是有符号类型时,此时,最高位称为“符号位”。最高位为1时,表示该数为负值,最高位为0时表示为正值。,17,无符号二进制数的算术运算,加法:00=0 01=1 10=1 11=0 减法:00=0 01=1 10=1 11=0 乘法:00=0 01=0 11=1 10=0 除法:乘法的逆运算,可以用减法和左移运算实现,18,无符号二进制数的取值范围:,一个n位的无符号二进制数X,其取值范围是 0 X2n-1 溢出: 最高有效位产生进位,19,无符号二进制数的逻辑运算,“与” :00=0 01=0 10=0 11=1 “或” :00=0 01=1 10=1 11=1 “非” :1=0 0=1 “异或” :00=0 01=1 10=1 11=0,20,2、 有符号二进制数的表示方法及溢出问题,一个有符号的数在机器中的表示形式称为机器数,其数值称为真值 机器数有三种表示法:原码、反码、补码 计算机中带符号的数用补码表示,21,原码表示法(1),正数的符号位用“0”表示,负数的符号位用“1”表示,绝对值的编码与无符号数的编码规则相同 例如,X=1010011 X原=0101 0011 X=1010011 X原=1101 0011 对于8位二进制原码 0有两种表示形式:0原=0000 0000 正零 0原=1000 0000 负零 所能表示的取值范围: 127 127 127原=0111 1111 127原=1111 1111,22,原码表示法(2),原码表示简单易懂,易于形成。但是,两个异号数相加或两个同号数相减,就要做减法操作,23,反码表示法(1),正数的反码表示与原码相同,最高位为符号位,用“0”表示正,其余位为数值位 例如: 4反=0000 0100 负数的反码,表示为该数对应的正数按位取反(包括符号位) 例如: 4反=0000 0100 4反=1111 1011,24,反码表示法(2),对于8位二进制反码 0有两种表示形式:0反=0000 0000 正零 0反=1111 1111 负零 所能表示的取值范围: 127 127 127反=0111 1111 127反=1000 0000,25,补码表示法(1),正数的补码表示与原码相同,最高位为符号位,用“0”表示正,其余位为数值位 例如: 4补=0000 0100 负数的补码等于其相应的反码加1(在最低位加1) 例如: 4补=0000 0100 4补= 4反1 =1111 1011 1 =1111 1100,26,补码表示法(2),对于8位二进制补码: 0的表示是唯一的: 0补=0补=0000 0000 所能表示的数值范围:128 127 127补 =0111 1111 128补 =1000 0000,27,二进制数、原码、补码关系,二进制数,无符号二进制数,原码,补码,0000 0000,0,+0,+0,0000 0001,0000 0010,1,+1,+1,2,+2,+2,0111 1110,126,+126,+126,0111 1111,127,+127,+127,1000 0000,128,- 0,- 128,1000 0001,129,-1,- 127,1000 0010,130,-2,-126,1111 1110,254,-126,- 2,1111 1111,255,-127,-1,28,有符号数运算时的溢出问题(1),溢出:有符号数的运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错 如果计算机的字长是n位,最高位是符号位,采用补码表示法时,可表示的数的范围为 -2n-12n-1-1 溢出出现在两个同号数相加或两个异号数相减的情况下,29,有符号数运算时的溢出问题(2),加法运算时:如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)没有进位输出时;反过来,次高位没有进位加入最高位,但最高位却有进位输出时,都会产生溢出。,01001000B +72, 01100010B +98,10101010B -86,10101101B -83,+ 10110000B -80,01011101B +93,+72与+98之和为+170,超过了位二进制数的所能表示的最大数+127,产生了上溢,得到了错误的结果-86。,-83与-80之和应为-163,超过了位二进制数所能表示的最小数-128,产生了下溢,得到了错误结果+93。,30,有符号数运算时的溢出问题(3),减法运算时:当次高位不需从最高位借位,但最高位却需借位(正数减负数,差超出范围,结果为负数);反过来,次高位需从最高位借位,但最高位不需借位(负数减正数,差超出范围,结果为正数),都会产生溢出。,01001000B +72, 10011110B -98,10101010B -86,+72与-98之差应为170,超过了位二进制数所能表示的最大+127,产生了上溢,得到了错误结果-86。,10101101B -83, 01010000B +80,01011101B +93,-83与+80之差应为-163,超出了位二进制数所能表示的最小数-128,产生下溢,得到错误结果为+93。,31,3、定点数和浮点数,在计算机中用二进制表示实数的方法有两种:定点法和浮点法 定点法 所谓定点法,即小数点在数中的位置是固定不变的,以定点法表示的实数称作定点数。 方法一:规定小数点固定在最高数值位之前,机器中所能表示的都是小数。n位数值部分所能表示的数N的范围(原码表示)为 1-2-nN-(1-2-n),32,方法二:规定小数点固定在最低数值位之后,机器中所能表示的数都是整数。n位数值部分所能表示的数N的范围是 2n-1N-(2n-1),符号位,数 值 位,小数点,由于实际问题中很少有纯粹的整数或者小数,所以定点法要求程序员为了调整所要表示的数值范围,而选择比例因子。所有原始数据都要用比例因子化成小数或整数,计算结果又要用比例因子恢复。对于复杂的计算,计算中间需要多次调整比例因子。,定点数和浮点数,33,浮点法 任意一个二进制数N总可以写成下面的形式: N=d2p 其中:d称为尾数,是二进制纯小数,指明数据的全部有效数字。前面的符号称作数符,表示数的符号。P称为阶数,它前面的符号称为阶符,由此可知,将尾数d的小数点向右(对+p)或向左(对-p)移动p位,即得数值N。所以阶符和阶码指定小数点的位置,小数点随着p的符号和大小而浮动,所以这种数称为浮点数。,定点数和浮点数,34,如果尾数的绝对值小于1而且大于等于0.5,即采用原码编码的正数或者负数和采用补码编码的正数,其尾数的最高位数字为1;采用补码编码的负数,其尾数的最高位数字为0,则该浮点二进制数被称为规格化浮点数。 数的加减运算要求小数点对齐,对于浮点数而言,就是阶码(包括阶符)相等,使阶码相等的操作称为对阶。,定点数和浮点数,35,例如: 已知m=4,n=10,有一个十进制数17.75,将其转换成二进制数,并对它进行规格化。 (17.75)10=(10001.11)2 =0.100011125 规格化后:,浮点运算后,经常要把结果规格化,规格化的操作就是尾数每右移1位(相当于小数点左移1位),阶码加1;尾数每左移1位,阶码减1。,定点数和浮点数,36,对阶的规则是:将两个数中阶码小的数的尾数右移,阶码增大,直到与另一个数的阶码相等为止。这样的操作很合理,因为尾数右移,不会打破尾数的范围,只可能丢失最低有效位,造成的误差较小。,例如两个二进制数1.10001和10011.1001相加,经过规格化后分别为 0 0001 0 1100010000 0 0101 0 1001110010 对阶后变为 0 0101 0 0000110001 + 0 0101 0 1001110010,定点数和浮点数,37,4、二进制编码(1),二进制编码的十进制数(BCD编码) 用二进制编码表示的十进制数称为二-十进制码,简称BCD码(Binary Coded Decimal) BCD码是十进制数,但用二进制数来表示 BCD码有多种表示方法,最常用的是8421BCD码 8421BCD码每一位用四位二进制数来表示,38,8421 BCD码的编码方案,十进制,8421 BCD 码,8421 BCD 码,十进制,0 1 2 3 4 5 6 7,8 9 10 11 12 13 14 15,0000 0001 0010 0011 0100 0101 0110 0111,1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101,39,BCD码的两种格式,BCD码的两种基本格式:组合式BCD码 分离式BCD码 组合式:一个字节表示两个BCD码,即两位十进制数,分离式:一个字节的低四位表示一个BCD码,高四位通常为0000,它对这个字节所表示的十进制数无影响。,40,BCD码的加减运算,例:用BCD码求38+49,0011 1000 38的BCD码, 0100 1001 49的BCD码,1000 0001 81的BCD码,错误原因分析: 由于BCD编码是将每个十进制数用一组4位二进制数,即一个十六进制数表示。在十进制数中是“逢十进一”和“借一当十”,而计算机按二进制数运算,是“逢十六进一”和“借一当十六”,这样在BCD码的加减法运算的结果会出现错误。,41,BCD码的加减运算,由于BCD码加法会出错,解决的方法就是“加6修正”,其规则是: 如果任何两个对应位BCD数相加的结果向高一位无进位时,若得到的结果小于或等于9,则该位不需修正;若得到的结果大于9且小于16时,该位就需要修正。 如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正。 低位修正结果使高位大于9时,高位进行加6修正。 这种修正称为BCD调整。同样在进行减法运算时,可采用“减6修正法”。在计算机中,还有BCD调整指令,可得到正确的结果。,42,BCD码的加减运算,例:用BCD码求38+49,0011 1000 38的BCD码, 0100 1001 49的BCD码,1000 0001 低四位向高四位有进位,0000 0110 低四位加6修正,1000 0111 87 正确结果,43,ASCII字符编码,计算机既要处理数值数据,还要处理字母、数字和符号(简称字符),而计算机内部只能识别二进制代码,所以必须将字符进行编码 目前微型计算机普遍采用的是美国国家信息交换标准字符码ASCII码(American Standard Code for Information Interchange),44,ASCII字符编码,ASCII码采用7位二进制代码对字符编码,故可表示128个字符,45,ASCII字符编码,一个字节为8位,在用一个字节表示一个ASCII码时,通常认为最高位为0。有时根据需要也用最高位作为奇偶校验位,用来检验代码在存储和发送过程中是否发生错误。 偶校验时,每个代码的二进制形式中应有偶数个1;奇校验时,每个代码中应有奇数个1。 奇偶校验只具有发现代码在存储和发送过程中出现的奇数个位出现错误的能力,由于简单可行,它被广泛地用于信息的存储和传送。,46,ASCII码字符表(7位码),0 000,1 001,2 010,3 011,4 100,5 101,6 110,7 111,0 1 2 3 4 5,0000 0001 0010 0011 0100 0101,6 7 8 9 A,0110 0111 1000 1001 1010,1011 1100 1101 1110 1111,B C D E F,NUL SOH STX ETX EOT ENQ,DLE DC1 DC2 DC3 DC4 NAK,SP ! “ # $ %,0 1 2 3 4 5, A B C D E,P Q R S T U,、 a b c d e,p q r s t u,ACK BEL BS HT LF,SYN ETB CAN EM SUB,& ( ) *,6 7 8 9 :,F G H I J,V W X Y Z,f g h i j,v w x y z,VT

温馨提示

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

最新文档

评论

0/150

提交评论