第1章预备知识数制与码制

上传人:工**** 文档编号:585998235 上传时间:2024-09-03 格式:PPT 页数:78 大小:482KB
返回 下载 相关 举报
第1章预备知识数制与码制_第1页
第1页 / 共78页
第1章预备知识数制与码制_第2页
第2页 / 共78页
第1章预备知识数制与码制_第3页
第3页 / 共78页
第1章预备知识数制与码制_第4页
第4页 / 共78页
第1章预备知识数制与码制_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《第1章预备知识数制与码制》由会员分享,可在线阅读,更多相关《第1章预备知识数制与码制(78页珍藏版)》请在金锄头文库上搜索。

1、第第1章章 预备知识预备知识(数制与码制数制与码制)第第1章章 预备知识预备知识(数制与码制数制与码制) 1.1 进位计数制及各计数制间的转换进位计数制及各计数制间的转换1.2 二进制数的运算二进制数的运算 1.3 带符号数的表示方法带符号数的表示方法 原码、反码、补码原码、反码、补码1.4 定点数与浮点数定点数与浮点数1.5 BCD码和码和ASCII码码第第1章章 预备知识预备知识(数制与码制数制与码制)1.1 进位计数制及各计数制间的转换进位计数制及各计数制间的转换数制是人们对事物数量计数的一种统计规律。在日常生活中最常用的是十进制,但在计算机中,由于其电气元件最易实现的是两种稳定状态:器

2、件的“开”与“关”;电平的“高”与“低”。因此,采用二进制数的“0”和“1”可以很方便地表示机内的数据运算与存储。在编程时,为了方便阅读和书写,人们还经常用八进制数或十六进制来表示二进制数。虽然一个数可以用不同计数制形式表示它的大小,但该数的量值则是相等的。第第1章章 预备知识预备知识(数制与码制数制与码制)1.1.1进位计数制当进位计数制采用位置表示法时,同一数字在不同的数位所代表的数值是不同的。每一种进位计数应包含两个基本的因素:(1)基数R(Radix):它代表计数制中所用到的数码个数。如:二进制计数中用到0和1两个数码;而八进制计数中用到07共八个数码。一般地说,基数为R的计数制(简称

3、R进制)中,包含0、1、R-1个数码,进位规律为“逢R进1”。第第1章章 预备知识预备知识(数制与码制数制与码制)(2)位权W(Weight):进位计数制中,某个数位的值是由这一位的数码值乘以处在这一位的固定常数决定的,通常把这一固定常数称之为位权值,简称位权。各位的位权是以R为底的幂。如十进制数基数R=10,则个位、十位、百位上的位权分别为100,101,102。一个R进制数N,可以用以下两种形式表示:(1)并列表示法,或称位置计数法:(N)R(Kn-1Kn-2K1K0K-1K-2K-m)R第第1章章 预备知识预备知识(数制与码制数制与码制)(2)多项式表示法,或称以权展开式:(N)RKn-

4、1Rn-1Kn-2Rn-2K1R1K0R0K-1R-1K-mR-m=其中:m、n为正整数,n代表整数部分的位数;m代表小数部分的位数;Ki代表R进制中的任一个数码,0KiR-1。1.二进制数二进制数,R2,Ki取0或1,进位规律为“逢2进1”。任一个二进制数N可表示为:第第1章章 预备知识预备知识(数制与码制数制与码制)(N)2Kn-12n-1Kn-22n-2K121K020-1-1K-m2-m(11)例如:(1001.101)2=12302202112012-102-22.八进制数八进制,R8,Ki可取07共8个数码中的任意1个,进位规律为“逢8进1”。任意一个八进制数N可以表示为:(N)8

5、Kn-18n-1Kn-28n-2K181K080K-18-1K-m8-m(12)例如:(246.12)828248168018-128-2第第1章章 预备知识预备知识(数制与码制数制与码制)3.十六进制数十六进制数,16,i可取015共16个数码中的任一个,但1015分别用A、B、C、D、E、F表示,进位规律为“逢16进1”。任意一个十六进制数可表示为:(N)16Kn-116n-1Kn-216n-2K1161K0160K-116-1K-m16m(13)例如:(2D07.A)16216313162016171601016-1第第1章章 预备知识预备知识(数制与码制数制与码制)表11给出了以上3种

6、进制数与十进制数的对应关系。为避免混淆,除用(N)R的方法区分不同进制数外,还常用数字后加字母作为标注。其中字母B(Binary)表示二进制数;字母Q(Octal的缩写为字母O,为区别数字0故写成Q)表示八进制数;字母D(Decimal)或不加字母表示十进制数;字母H(Hexadecimal)表示十六进制数。第第1章章 预备知识预备知识(数制与码制数制与码制)表11二、八、十、十六进制数码对应表第第1章章 预备知识预备知识(数制与码制数制与码制)1.1.2各种进制数间的相互转换1.各种进制数转换成十进制数各种进制数转换成十进制数的方法是:将各进制数先按权展成多项式,再利用十进制运算法则求和,即

7、可得到该数对应的十进制数。例1:将数1001.101B,246.12Q,2D07.AH转换为十进制数。1001.101B12302202112012102-212-3810.50.1259.625第第1章章 预备知识预备知识(数制与码制数制与码制)246.12Q28248168018-128-21283260.1250.03125166.156252D07.AH216313162016171601016-18192332870.62511527.625第第1章章 预备知识预备知识(数制与码制数制与码制)2.十进制数转换为二、八、十六进制数任一十进制数N转换成q进制数,先将整数部分与小数部分分为

8、两部分,并分别进行转换,然后再用小数点将这两部分连接起来。1)整数部分转换整数部分转换步骤为:第1步:用去除N的整数部分,得到商和余数,记余数为进制整数的最低位数码K0;第第1章章 预备知识预备知识(数制与码制数制与码制)第2步:再用q去除得到的商,求出新的商和余数,余数又作为q进制整数的次低位数码K1;第3步:再用q去除得到的新商,再求出相应的商和余数,余数作为q进制整数的下一位数码Ki;第4步:重复第3步,直至商为零,整数转换结束。此时,余数作为转换后q进制整数的最高位数码Kn-1。第第1章章 预备知识预备知识(数制与码制数制与码制)2|1682|84余数0,K002|42余数0,K102

9、|21余数0,K202|10余数1,K312|5余数0,K408|1682|2余数1,K518|21余数0,K0016|1682|1余数0,K608|2余数5,K151616|10余数8,K080余数1,K710余数2,K220余数10,K1A16810101000B168250Q168A8H第第1章章 预备知识预备知识(数制与码制数制与码制)2)小数部分转换小数部分转换步骤为:第1步:用q去乘N的纯小数部分,记下乘积的整数部分,作为q进制小数的第1个数码K-1;第2步:再用q去乘上次积的纯小数部分,得到新乘积的整数部分,记为q进制小数的次位数码K-i;第3步:重复第2步,直至乘积的小数部分为

10、零,或者达到所需要的精度位数为止。此时,乘积的整数位作为q进制小数位的数码K-m。第第1章章 预备知识预备知识(数制与码制数制与码制)例3:将0.686转换成二、八、十六进制数(用小数点后5位表示)。0.6862=1.372K-1=10.6868=5.488K-1=50.68616=10.976K-1=A0.3722=0.744K-2=00.4888=3.904K-2=30.97616=15.616K-2=F0.7442=1.488K-3=10.9048=7.232K-3=70.61616=9.856K-3=90.4882=0.976K-4=00.2328=1.856K-4=10.85616=

11、13.696K-4=D0.9762=1.952K-5=10.8568=6.848K-5=60.69616=11.136K-5=B0.6860.10101B0.6860.53716Q0.6860.AF9DBH第第1章章 预备知识预备知识(数制与码制数制与码制)例4:将168.686转换为二、八、十六进制数。根据例2、例3可得:168.68610101000.10101B168.686250.53716Q168.686A8.AF9DBH第第1章章 预备知识预备知识(数制与码制数制与码制)从以上例子可以看出,二进制表示的数愈精确,所需的数位就愈多,这样,不利于书写和记忆,而且容易出错。另外,若用同样

12、数位表示数,则八、十六进制数所表示数的精度较高。所以在汇编语言编程中常用八进制或十六进制数作为二进制数的缩码,来书写和记忆二进制数,便于人机信息交换。在MCS-51系列单片机编程中,通常采用十六进制数。第第1章章 预备知识预备知识(数制与码制数制与码制)3.二进制数与八进制数之间的相互转换由于238,故可采用“合3为1”的原则,即从小数点开始分别向左、右两边各以3位为1组进行二八换算;若不足3位的以0补足,便可将二进制数转换为八进制数。例5:将1111011.0101B转换为八进制数。解:根据“合3为1”和不足3位以0补足的原则,将此二进制数书写为:001111011.01010017324因

13、此,其结果为1111011.0101B173.24Q。第第1章章 预备知识预备知识(数制与码制数制与码制)例6:将1357.246Q转换成二进制数。解:根据“1分为3”的原则,可将该十进制数书写为:1357.26001011101111010100110其结果为1357.246Q1011101111.01010011B。4.二进制数与十六进制数之间的相互转换由于24=16,故可采用“合4为1”的原则,从小数点开始分别向左、右两边各以4位为1组进行二十六换算;若不足4位以0补足,便可将二进制数转换为十六进制数。第第1章章 预备知识预备知识(数制与码制数制与码制)例7:将1101000101011

14、.001111B转换成十六进制数。解:根据“合4为1”的原则,可将该二进制数书写为:0001101000101011001111001A2B3C其结果为1101000101011.001111B=1A2B.3CH。反之,采用“1分为4”的原则,每位十六进制数用4位二进制数表示,便可将十六进制数转换为二进制数。第第1章章 预备知识预备知识(数制与码制数制与码制)例8:将4D5E.6FH转换成二进制数。解:根据“1分为4”的原则,可将该十六进制数书写为:4D5E6F010011010101111001101111其结果为4D5E.6FH100110101011110.01101111B。第第1章章

15、 预备知识预备知识(数制与码制数制与码制)1.2 二进制数的运算二进制数的运算 1.2.1二进制数的算术运算二进制数不仅物理上容易实现,而且算术运算也比较简单,其加、减法遵循“逢2进1”、“借1当2”的原则。以下通过4个例子说明二进制数的加、减、乘、除运算过程。1.二进制加法1位二进制数的加法规则为:0000111011110(有进位)第第1章章 预备知识预备知识(数制与码制数制与码制)例1:求11001010B11101B。解:被加数11001010加数11101进位)00110000和11100111则11001010B11101B11100111B。由此可见,两个二进制数相加时,每1位有

16、3个数参与运算(本位被加数、加数、低位进位),从而得到本位和以及向高位的进位。第第1章章 预备知识预备知识(数制与码制数制与码制)2.二进制减法1位二进制数减法规则为:101110000011(有借位)例2:求10101010B10101B。解:被减数10101010减数10101借位)00101010差10010101则10101010B10101B10010101B。第第1章章 预备知识预备知识(数制与码制数制与码制)3.二进制乘法1位二进制乘法规则为:000010100111例3:求110011B1011B。解:被乘数110011乘数)1011110011110011000000)110

17、011积1000110001第第1章章 预备知识预备知识(数制与码制数制与码制)则110011B1011B1000110001B。由运算过程可以看出,二进制数乘法与十进制数乘法相类似,可用乘数的每1位去乘被乘数,乘得的中间结果的最低有效位与相应的乘数位对齐,若乘数位为1,则中间结果为被乘数;若乘数位为0,则中间结果为0,最后把所有中间结果同时相加即可得到乘积。显然,这种算法计算机实现时很不方便。对于没有乘法指令的微型计算机来说,常采用比较、相加、与部分积右移相结合的方法进行编程来实现乘法运算。第第1章章 预备知识预备知识(数制与码制数制与码制)4.二进制除法二进制除法的运算过程类似于十进制除法

18、的运算过程。例4:求100100B101B。解:00011110110010010110001011101011第第1章章 预备知识预备知识(数制与码制数制与码制)则100100B101B=111B,余1B。二进制数除法是二进制数乘法的逆运算,在没有除法指令的微型计算机中,常采用比较、相减、余数左移相结合的方法进行编程来实现除法运算。由于MCS-51系列单片机指令系统中包含有加、减、乘、除指令,因此给用户编程带来了许多方便,同时也提高了机器的运算效率。第第1章章 预备知识预备知识(数制与码制数制与码制)1.2.2二进制数的逻辑运算1.“与”运算(AND)“与”运算又称逻辑乘,运算符为或。“与”

19、运算的规则如下:00001100111例5:若二进制数X10101111B,Y01011110B,求XY。101011110101111000001110则XY00001110B。第第1章章 预备知识预备知识(数制与码制数制与码制)2.“或”运算(OR)“或”运算又称逻辑加,运算符为或。“或”运算的规则如下:00001101111例6:若二进制数X10101111B,Y01011110B,求XY。101011110101111011111111则XY11111111B。第第1章章 预备知识预备知识(数制与码制数制与码制)3.“非”运算(NOT)“非”运算又称逻辑非,如变量A的“非”运算记作。“

20、非”运算的规则如下:例7:若二进制数A10101111B,求。01010000B由此可见,逻辑“非”可使A中各位结果均发生反变化,即0变1,1变0。第第1章章 预备知识预备知识(数制与码制数制与码制)4.“异或”运算(XOR)“异或”运算的运算符为或,其运算规则如下:00001101110例8:若二进制数X10101111B,Y01011110B,求XY。101011110101111011110001则XY11110001B。第第1章章 预备知识预备知识(数制与码制数制与码制)1.3 带符号数的表示方法带符号数的表示方法原码、反码、补码原码、反码、补码 1.3.1机器数与真值在1.2.1、1

21、.2.2节中讨论的二进制数运算均为无符号数运算,但实际的数值是带有符号的,既可能是正数,也可能是负数,前者符号用“”号表示,后者符号用“”号表示,运算的结果也可能是正数,也可能是负数。于是在计算机中就存在着如何表示正、负数的问题。第第1章章 预备知识预备知识(数制与码制数制与码制)由于计算机只能识别0和1,因此,在计算机中通常把一个二进制数的最高位作为符号位,以表示数值的正与负(若用8位表示一个数,则D7位为符号位;若用16位表示一个数,则D15位为符号位),并用0表示“”;用1表示“”。例如:N11011,N2-1011在计算机中用8位二进制数可分别表示为:D7D6D5D4D3D2D1D00

22、0001011符号数值部分第第1章章 预备知识预备知识(数制与码制数制与码制)1.3.2原码、补码与反码1.原码正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称之为原码,用X原表示。(1)正数的原码。D7D6D5D4D3D2D1D010001011符号数值部分第第1章章 预备知识预备知识(数制与码制数制与码制)若真值为正数XKn-2Kn-3K1K0(即n-1位二进制正数),则X原0Kn-2Kn-3K1K0(14)2)负数的原码。若真值为负数XKn-2Kn-3K1K0(即n-1位二进制负数),则X原0Kn-2Kn-3K1K02n-1Kn-2Kn-3K1K0

23、2n-1(Kn-2Kn-3K1K0)2n-1X(15)第第1章章 预备知识预备知识(数制与码制数制与码制)例如:115和-115在计算机中(设机器字长为8位),其原码可分别表示为:+115原01110011B;-115原11110011B(3)零的原码。若真值为零,则原码有两种表示法:+0原00000-0原10000由此可得原码与真值的关系为X,0X2n2n-1X2nX0(16)X原第第1章章 预备知识预备知识(数制与码制数制与码制)2.补码与反码1)补码的概念在日常生活中有许多“补”数的事例。如钟表,假设标准时间为6点整,而某钟表却指在9点,若要把表拨准,可以有两种拨法,一种是倒拨3小时,即

24、936;另一种是顺拨9小时,即996。尽管将表针倒拨或顺拨不同的时数,但却得到相同的结果,即93与99是等价的。这是因为钟表采用12小时进位,超过12就从头算起,即:99126,该12称之为模(mod)。第第1章章 预备知识预备知识(数制与码制数制与码制)模(mod)为一个系统的量程或此系统所能表示的最大数,它会自然丢掉,如:93991266(mod12自然丢掉)通常称9是3在模为12时的补数。于是,引入补数后使减法运算变为加法运算。例如:1171154(mod12)5是7在模为12时的补数,减7与加5的效果是一样的。第第1章章 预备知识预备知识(数制与码制数制与码制)一般情况下,任一整数X,

25、在模为K时的补数可用下式表示:X补数XK(modK)X0XKK-|X|KX0(17)=第第1章章 预备知识预备知识(数制与码制数制与码制)由补码的概念引伸,当用n位二进制数表示整数X(1位为符号位,n-1位为数值位),模为2n时,数的补码可表示为:X0X2n-12nX2n-1X0(mod2n)X补(18)第第1章章 预备知识预备知识(数制与码制数制与码制)从式(18)可见:正数的补码与其原码相同,即X补X原;零的补码为零,+0补-0补00000;负数才有求补码的问题。2)负数补码的求法补码的求法一般有两种:用补码定义式:X补2nX2n|X|-2n-1X0(整数)(19)第第1章章 预备知识预备

26、知识(数制与码制数制与码制)在用补码定义式求补码的过程中,由于做一次减法很不方便,故该法一般不用。例如:X-0101111B,n8,则X补=28(-0101111B)100000000B0101111B11010001B(mod28)用原码求反码,再在数值末位加1可得到补码,即:X补X反1。第第1章章 预备知识预备知识(数制与码制数制与码制)3)反码一个正数的反码,等于该数的原码;一个负数的反码,等于该负数的原码符号位不变(即为1),数值位按位求反(即0变1,1变0);或者在该负数对应的正数原码上连同符号位逐位求反。反码用X反表示。X0X2n-1(2n-1)+X-2n-1X0(110)X反第第

27、1章章 预备知识预备知识(数制与码制数制与码制)从式(110)可见:正数的反码:X反X原;负数的反码:X反零的反码:+0反00000-0反11111例1:假设X1+83,X2-76,当用8位二进制数表示一个数时,求X1、X2的原码、反码及补码。解:X1原X1反X1补01010011BX2原11001100B第第1章章 预备知识预备知识(数制与码制数制与码制)X2反10110011BX2补X反110110100B综上所述可归纳为:正数的原码、反码、补码就是该数本身;负数的原码其符号位为1,数值位不变;负数的反码其符号位为1,数值位逐位求反;负数的补码其符号位为1,数值位逐位求反并在末位加1。第第

28、1章章 预备知识预备知识(数制与码制数制与码制)1.3.3补码的运算规则与溢出判别1.补码的运算规则补码的运算规则如下:1)X+Y补X补Y补该运算规则说明:任何两个数相加,无论其正负号如何,只要对它们各自的补码进行加法运算,就可得到正确的结果,该结果是补码形式。第第1章章 预备知识预备知识(数制与码制数制与码制)2)X-Y补X补-Y补该运算规则说明:任意两个数相减,只要对减数连同“-”号求补,就变成被减数补与-减数补相加,该结果是补码形式。3)X补补X原对于运算产生的补码结果,若要转换为原码表示,则正数的结果X补X原;负数结果,只要对该补结果再进行一次求补运算,就可得到负数的原码结果。第第1章

29、章 预备知识预备知识(数制与码制数制与码制)例2:用补码求X+Y。解:若X补00100101,Y补00110011,可得X+Y补X补+Y补00100101+0011001101011000由于符号位为0是正数,所以X+Y原X+Y补01011000则X+Y(01011000)288第第1章章 预备知识预备知识(数制与码制数制与码制)例3:用补码求X-Y。解:若-Y补11001101,可得X-Y补X补+-Y补00100101+1100110111110010由于符号位为1是负数,所以X-Y原X-Y补补10001110则X-Y-(00001110)2-14第第1章章 预备知识预备知识(数制与码制数制

30、与码制)例4:用补码求Y-X。解:若-X补11011011,可得Y-X补Y补+-X补00110011+11011011100001110(模28自然丢失)则Y-X(00001110)2+14第第1章章 预备知识预备知识(数制与码制数制与码制)例5:用补码求(-X)+(-Y)。解:(-X)+(-Y)补-X补+-Y补11011011+11001101110101000(模28自然丢失)(-X)+(-Y)原(-X)+(-Y)补补11011000则(-X)+(-Y)-(01011000)2-88上述运算结果是正确的,但有时在补码运算中可能会出现错误的结果,请看下面例子。第第1章章 预备知识预备知识(数

31、制与码制数制与码制)例6:设X+100,Y+50,用补码运算求X+Y,(-X)+(-Y)。解:X补01100100Y补00110010-X补10011100-Y补11001110X+Y补X补+Y补01100100+0011001010010110X+Y原X+Y补补11101010X+Y-(01101010)2-106而-X补+-Y补10011100+1100111001101010-X补+-Y补原(01101010)201101010(-X)+(-Y)+(01101010)+106第第1章章 预备知识预备知识(数制与码制数制与码制)2.溢出的判别计算机中判别溢出的方法通常采用双高位判别法。双高

32、位判别法利用符号位(Kn-1位)及最高数值位(Kn-2位)的进位情况来判断是否发生了溢出。为此,需引进两个符号:CS和CP。CS:若符号位发生进位,则CS1;否则CS0。CP:若最高数值位发生进位,则CP1;否则CP0。第第1章章 预备知识预备知识(数制与码制数制与码制)当两个正数补码相加时,若数值部分之和大于2n-1,则数值部分必有进位CP1;而符号位却无进位CS0。这时CSCP的状态为“01”,发生正溢出。当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和必小于2n-1,CP0;而符号位肯定有进位CS1,这时CSCP的状态为“10”,发生负溢出。当不发生溢出时,CS

33、和CP的状态是相同的,即CSCP的状态为“00”或“11”。第第1章章 预备知识预备知识(数制与码制数制与码制)例7:01011001(+89)10010010(-110)01101100(+108)10100100(-92)+)011110000(进位)+)100000000(进位)011000101(-59)100110110(+54)CS0,CP1,正溢出CS1,CP0,负溢出第第1章章 预备知识预备知识(数制与码制数制与码制)例8:00110010(+50)11101100(-20)01000110(+70)11100010(-30)+)000001100(进位)+)111000000

34、(进位)001111000(+120)111001110(-50)CS0,CP0,无溢出CS1,CP1,无溢出第第1章章 预备知识预备知识(数制与码制数制与码制)例9:01010101(+85)10111100(-68)11011101(-35)00011101(+29)+)110111010(进位)+)001111000(进位)100110010(+50)011011001(-39)CS1,CP1,无溢出CS0,CP0,无溢出第第1章章 预备知识预备知识(数制与码制数制与码制)综上所述,对计算机而言,补码的引入使带符号数的运算都按加法处理。如果C和C的值相等,则表示运算结果正确,没有溢出,运

35、算结果的正与负由符号位决定(如例8、例9);如果CS和CP的值不等,则表示运算结果不正确,发生了溢出现象(如例7)。在计算机中,常用“异或”电路来判别有无溢出发生,即CSCP1表示有溢出发生,否则无溢出发生。第第1章章 预备知识预备知识(数制与码制数制与码制)1.4 定点数与浮点数定点数与浮点数 1.4.1定点表示法在计算机中,如将小数点的位置固定不变,称为定点表示法。这个固定的位置是事先约定好的,不必用符号表示。用定点法表示的实数叫做定点数。通常,定点表示采用以下两种方法。第第1章章 预备知识预备知识(数制与码制数制与码制)1.定点整数表示法小数点固定在最低数值位之后,机器中能表示的所有数都

36、是整数,这种方法称之为定点整数表示法。其格式如下:符号位数值位其中“.”为设定的小数点位置当用n位表示数N时,1位为符号位,n1位为数值位,则N的范围是:2n-1N2n-11(111)第第1章章 预备知识预备知识(数制与码制数制与码制)若n8,则-128N127;若n16,则32768N32767。例如:若N1011011,n8,则在计算机内用定点整数法可将N表示为:01011011第第1章章 预备知识预备知识(数制与码制数制与码制)2.定点小数表示法小数点固定在最高数值位之前,机器中能表示的所有数即为纯小数,这种方法称之为定点小数表示法。其格式如下:符号位数值位其中“.”为设定的小数点位置。

37、当用n位表示数N时,1位为符号位,n1位为数值位,则N的范围是:(121-n)N121-n(112)第第1章章 预备知识预备知识(数制与码制数制与码制)例如:若N-0.1011011,n8,则在计算机内用定点小数法可将N表示为:01011011第第1章章 预备知识预备知识(数制与码制数制与码制)1.4.2浮点表示法在计算机中,小数点位置并不是固定不变的,而是可以改变的,这种表示法称为浮点表示法。用浮点法表示的实数,叫做浮点数。任意一个二进制数N可以表示成如下形式:NM2E(113)称作数符,表示数的正、负;E称为阶码,它前面的符号称为阶符,指明尾数小数点向右或向左浮动的方向,而阶码E指明尾数小

38、数点移动的位数,所以阶符和阶码表明了数值N小数点的位置。第第1章章 预备知识预备知识(数制与码制数制与码制)设阶码E的位数为m位,尾数M的位数为n位,则浮点数N的取值范围为:2-n2-(2m-1)|N|(12-n)2(2m-1)(114)例如:对16位表示的浮点原码数,当m7,n7时,它所能表示的最大绝对值为:|N|max(12-n)2(2m-1)(12-7)2(27-1)2127它所能表示的除0以外的最小绝对值为:|N|min2-n2-(2m-1)2-72-(27-1)2-134(115)第第1章章 预备知识预备知识(数制与码制数制与码制)由此可见,由于浮点数能表示的数值范围很大,因此,在科

39、学计算时不需要比例因子。为了提高精度,发挥尾数有效位的最大作用,还规定二进制浮点数其尾数数字部分原码的最高位为1,叫做规格化表示法。如:0.0010101可表示为2-20.1010100称为规格化浮点数。第第1章章 预备知识预备知识(数制与码制数制与码制)1.5 BCD码和码和ASCII码码1.5.1BCD码(BinaryCodedDecimal)二进制数以其物理易实现和运算简单的优点在计算机中得到了广泛应用,但人们日常习惯最熟悉的还是十进制。为了既满足人们的习惯,又能让计算机接受,便引入了BCD码。它用二进制数码按照不同规律编码来表示十进制数,这样的十进制数的二进制编码,既具有二进制的形式,

40、又具有十进制的特点,便于传递处理。第第1章章 预备知识预备知识(数制与码制数制与码制)1位十进制数有09共10个不同数码,需要由4位二进制数来表示。4位二进制数有16种组合,取其10种组合分别代表10个十进制数码。最常用的方法是8421BCD码,其中8、4、2、1分别为4位二进制数的位权值。表12给出了十进制数和8421BCD码的对应关系。第第1章章 预备知识预备知识(数制与码制数制与码制)表128421BCD码第第1章章 预备知识预备知识(数制与码制数制与码制)从表12中可看出8421BCD码与十进制数关系直观,二十间相互转换容易。例如:将78.43转换成相应的BCD码,而将(0110100

41、1.00010101)BCD转换成十进制数。78.43(01111000.01000011)BCD(01101001.00010101)BCD69.15第第1章章 预备知识预备知识(数制与码制数制与码制)1.5.2BCD码运算及十进制调整若想让计算机直接用十进制的规律进行运算,则将数据用BCD码来存储和运算即可。例如:4+3即:(0100)BCD+(0011)BCD(0111)BCD715+12即:(00010101)BCD+(00010010)BCD(00100111)BCD27第第1章章 预备知识预备知识(数制与码制数制与码制)但是,8421BCD码可表示数的范围为00001111(即十进

42、制的015),而十进制数为00001001(即09)。所以,在运算时,必须注意以下两点:当两个BCD数相加结果大于1001(即大于十进制数9)时,为使其符合十进制运算和进位规律,需对BCD码的二进制运算结果加0110(加6)调整。例如:4+8(0100)BCD+(1000)BCD(1100)BCD1001,调 整 后 , 其 结 果 为 : (1100)BCD+(0110)BCD(00010010)BCD12。第第1章章 预备知识预备知识(数制与码制数制与码制)当两个BCD数相加结果在本位上并不大于1001,但有低位进位发生,使得两个BCD数与进位一起相加,其结果大于1001,这时也要作加01

43、10(加6)调整。例如:用BCD数完成54+48的运算。解:54(01010100)BCD,48(01001000)BCD第第1章章 预备知识预备知识(数制与码制数制与码制)01010100+)0100100010011100(低4位大于9)+)0110(低4位加6调整)10100010(低4位有进位)+)0110(高4位加6调整)000100000010则(000100000010)BCD102第第1章章 预备知识预备知识(数制与码制数制与码制)1.5.3ASCII码与奇偶校验在计算机的应用过程中,如操作系统命令,各种程序设计语言以及计算机运算和处理信息的输入输出,经常用到某些字母,数字或各

44、种符号,如:英文字母的大、小写;09数字符;、*、/运算符;、关系运算符等等。但在计算机内,任何信息都是用代码表示的,因此,这些符号也必须要有自己的编码。第第1章章 预备知识预备知识(数制与码制数制与码制)ASCII码采用7位二进制数对字符进行编码,它包括10个十进制数09;大写和小写英文字母各26个;32个通用控制符号;34个专用符号,共128个字符。其中数字09的ASCII编码分别为30H39H,英文大写字母AZ的ASCII编码从41H开始依次编至5AH。ASCII编码从20H7EH均为可打印字符,而00H1FH为通用控制符,它们不能被打印出来,只起控制或标志的作用,如0DH表示回车(CR),0AH表示换行控制(LF),04H(EOT)为传送结束标志。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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