数在计算机中的表示方法及编码

上传人:新** 文档编号:476466616 上传时间:2022-09-10 格式:DOC 页数:7 大小:30.51KB
返回 下载 相关 举报
数在计算机中的表示方法及编码_第1页
第1页 / 共7页
数在计算机中的表示方法及编码_第2页
第2页 / 共7页
数在计算机中的表示方法及编码_第3页
第3页 / 共7页
数在计算机中的表示方法及编码_第4页
第4页 / 共7页
数在计算机中的表示方法及编码_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数在计算机中的表示方法及编码》由会员分享,可在线阅读,更多相关《数在计算机中的表示方法及编码(7页珍藏版)》请在金锄头文库上搜索。

1、数在计算机中的表示方法及编码计算机中的信息不仅有数据,还有字符、命令,其中数据还有大与小、正数与负数之分。计算机是如何用“0”或“1”,来表示这些信息的呢?1计算机中数的表示形式在计算机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。例如:N11011,N21011。由于MCS51为8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001011,其中最高位

2、为符号值,其余位为数值位。最高位为0表示是正数,最高位为1表示是负数。这种计算机用来表示数的形式叫机器数。而把对应于该机器数的算术值叫真值。 值得注意的是:机器数和真值的面向对象不同,机器数面向计算机,真值面向用户,机器数不同于真值。但真值可以用机器数来表示。机器数是计算机中表示数的基本方法,机器数通常有原码、反码和补码三种形式。(1)原码表示方法用8位二进制数表示数的原码时,最高位为数的符号位,其余7位为数值位。例如:真值为120和120的原码形式120原01111000120原11111000对于零,可以认为它是正零,也可以认为它是负零,所以零的原码有两种表示形式:+0原00000000-

3、0原100000008位二进制数原码表示范围为:1111111101111111,即127127。(2)反码表示方法在反码表示方法中,正数的反码与原码相同,负数的反码由它对应原码除符号位之外,其余各位按位取反得到。例如:120反+120原01111000120反10000111零的反码有两种表示方式,即:0反000000000反111111118位二进制数反码表示范围为:1111111101111111,即127127。(3)补码表示方法补码的概念:先以钟表对时为例,假设现在的标准时间为5点整,而有一只表却已是7点,为了校准时间,可以采用两种方法:一是将时针退2格,即725;一是将时针向前拨1

4、0格,即71012(自动丢失)5,都能对准到5点。可见,减2和加10是等价的,我们把(10)称为(2)对12的补码,12为模,当数值大于模12时可以丢弃12。在字长为8位的二进制数字系统中,模为28256,先看看下例:01000000 64 01000000 6411110110 246 00001010 10 1 00110110 54 1 00l10110 54由此可见,在字长为8位情况下(6410)与(64246)的结果是相同的,所以(10)和246互为补数。在补 码表示方法中,正数的补码与原码相同,负数的补码由它对应原码除符号位之外,其余各位按位取反且末位加一得到。例如:120补+12

5、0原01111000现在我们看一看(10)的补码11110110怎样求得。正数的补码表示方法与原码相同负数的补码求法:1)利用反码求补码:反码加1。如:10原100010l010反1111010110补111101102)利用原码求补码(直接求补法):找出原码中数值位的最右边的一个“1”,将这个“1”以及这个“1”右边各位保持不变,而将这个“1”左边各位按位取反,但符号位不变。如:10原100010l010补11110110采用补码表示数,可将减法运算转换成加法运算。在补码表示法中,零的补码只有一种表示法,即 +0补-0补00000000。对于八位二进制数而言,补码能表示的数的范围为12812

6、7。【例1-10】已知X=+1010B,Y=1010B,写出它们的原码、反码和补码形式。+1010B原00001010B 1010B原10001010B+1010B反00001010B 1010B反11110101B+1010B补00001010B 1010B补11110110B2补码的加减运算当用补码表示数时,可用加法完成减法运算,因此带符号数一般都以补码形式在机器中存放和参加运算。补码的运算公式是:X+Y补X补+Y补X-Y补X补+Y补上述公式表明,补码的“和”等于“和”的补码。也就是说,在进行补码加法运算时,不论相加的两数是正、是负,只要把它们表示成相应的补码形式,直接按二进制规则相加,其

7、结果都应为“和”的补码已知X的补码,求X的原码时,可以将X的补码当作X原码形式,再求次补码得到:X补补=X原。【例1-11】已知X补10111010B,求X原。X原X补补10111010补11000110B补码加减运算时,不能保证每次运算结果都是正确,也就是要注意溢出问题。所谓溢出在这里是指:两个带符号数进行运算时,其结果超出补码的表示范围128127。【例1-12】已知X补00111010B,Y补10011101B,求X+Y补。00111010 5810011101 99 11010111 41 得:X+Y补11010111B【例1-13】已知X补10011011B,Y补01101001B,

8、求X+Y补。10011011 10101101001 105 1 00000100 4 得:X+Y补00000100B (进位发生丢失,不会影响运算结果)【例1-14】已知X补11000100B,Y补10001000B,求X+Y补。11000100 60 10001000 120 1 01001100 180 得:X+Y补1001100B (显然该结果是错误的)【例1-15】已知X补01101000B,Y补00110100B,求XY补。Y补11001100B (已知Y补,求Y补,只要将连同符号位一起“取反加一” )01101000 10411001100 -52 1 00110100 52 得

9、:XY补00110100B溢出的判断:(1)法一:双高位判别法判别数据的最高位与次高位的进位情况,若一致,则无溢出;若不一致,则溢出。(2)法二:设有带符号数A、B,其补码A补=a0 a1 an-1, B补=b0 b1 bn-1,a0 a1 an-1 A补b0 b1 bn-1 B补c0 c1 cn-1 A+B补若a0= b0=0,而c0=1,即两个正数相加得到了负数,则发生了溢出: 若a0=b0=1,而c0=0,即两个负数相加得到了正数,则发生了溢出 ;若a0与 b0异号,相加只会变小,不会发生溢出。3BCD码BCD码是一种用二进制编码表示十进制数的编码形式。它采用四位二进制编码0000100

10、1来代表十个十进制数符号09。它们之间的对应关系如表1-5。由于四位二进制编码可以表示十六种状态:而十进制符号只有十种状态,在BCD码表示的十进制数中不允许出现1010、1011、1100、1101、1110、1111六种非法状态。例如:175D的BCD码为(0001 0111 0101)BCD。表1-5 BCD码与十进制数对应关系十进制数BCD码十进制数BCD码00000501011000160110200107011130011810004010091001(1)BCD码加法运算BCD码加法是指两个BCD十进制数按“逢十进一”的原则相加,其和也是一个用BCD码表示的十进制数。由于计算机只能

11、进行二进制加法,它在两个相邻BCD码之间只能按“逢十六进一”原则相加,不可能进行“逢十进一”。因此,计算机在进行BCD加法时,必须对二进制加法的结果进行修正,使两个紧邻的BCD之间真正能够做到“逢十进一”。修正原则是:对应位的两个BCD码相加,若和的结果大于9(1001)或低位向高位发生了进位,则进行加6(0110)修正,这种修正可以由单片机执行内部的十进制调整指令来完成。【例1-16】 X=48,Y=69,分析BCD码的加法过程。48 01001000 (BCD)+ 69 01101001 (BCD)117 10110001 (因低4位向高4位进位,故加6修正)0110 10110111 (

12、因高4位大于9,故加6修正)0110 1 00010111(BCD)(2)BCD码减法运算同理,BCD码减法运算时,也要进行修正,修正原则是对应位BCD码若相减后,结果大于9(1001)或低4位BCD码被减数不够减有向高位有借位时,则要进行减6修正。【例1-17】X=51,Y=28分析BCD码减法过程。51 01010001(BCD)28 00101000(BCD)23 00101001 (因低4位有借位,故减6修正)0110 00100011(BCD)需要注意的是:用BCD编码表示的数是二进制编码的十进制数,而不是二进制数。4. ASCII码在微型计算机中,机器只能识别处理二进制信息,因此,

13、字母和各种符号也必须按照某种特定的规则用二进制代码表示。目前,世界上最普遍采用的是ASCII(American Standard Code for Information Interchange)码,全称为“美国标准信息交换码”,这种编码在数据传输中也有广泛应用。ASCII码是一种8位代码,一般用低7位代码来代表字符信息,最高位可用于奇偶校验,共有128个不同的字符。其中32个是控制字符,如NUL(代码是00H)为空白符,CR(代码为0DH)为回车。96个图形字符,如数字09的ASCII码为30H39H,字母AZ的ASCII码为41H5AH,ASCII码详见附录A。从表中可查出,“0”的ASC

14、II码(D6D5D4D3D2D1D0)是0110000,“A”的ASCII码是1000001。在8位机中,ASCII码只用D6D0位,D7位用作奇偶校验位,以检验信息传递过程中是否有错。例如字毋“B”的ASCII码为1000010B,当采用偶校验时,因为编码中有2个“1”,(偶数个1),则D7置0,即01000010B;采用奇校验时,则D7置l,以形成奇数个1,即11000010B。常用汉字约6763个,图形约682个,对常用的汉字和图形进行编码是采用国标码,代号为“GB23121980”。国标码中每个汉字或符号是用二个字节(16位二进制数)表示,在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码,计算机内就是用汉字机内码对汉字进行存储和处理的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号