1-2_计算机中数和字符的表示_第1页
1-2_计算机中数和字符的表示_第2页
1-2_计算机中数和字符的表示_第3页
1-2_计算机中数和字符的表示_第4页
1-2_计算机中数和字符的表示_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、1.2 1.2 计算机中数和字符的表示计算机中数和字符的表示 概述概述 一、计算机中数和字符的存放一、计算机中数和字符的存放 二、数制及其转换二、数制及其转换 1.2.1 无符号数表示无符号数表示 1.2.2 有符号数的表示方法有符号数的表示方法 1.2.3 定点数和浮点数定点数和浮点数 1.2.4 计算机中的二进制编码计算机中的二进制编码 总结总结 概述概述 一、计算机中数和字符的存放一、计算机中数和字符的存放 8位(字节位(字节BYTE) 16位(字位(字WORD) 32位(双字位(双字DWORD) 64位、位、128位、位、256位位 二、数制及其转换二、数制及其转换(注意数据的表示形式

2、)(注意数据的表示形式) 1、数制、数制 十进制(十进制(Decimal)后缀加后缀加“D”例如,例如,25D或或25(后缀可略)(后缀可略) 二进制(二进制(Binary)后缀加后缀加“B”例如,例如,11010001B 八进制(八进制(Octonary)后缀加后缀加“O”或或“Q”例如,例如,76Q 十六进制(十六进制(Hexadecimal)后缀加后缀加“H” 例如,例如,0F6H(汇编程序中,字符开头的数前需加汇编程序中,字符开头的数前需加“0” ) 2、数制之间的转换、数制之间的转换 二十进制转换二十进制转换 二八进制转换二八进制转换 二十六进制转换二十六进制转换 1.2.1 无符号

3、数表示无符号数表示机器字长的所有位都参与表示数值。机器字长的所有位都参与表示数值。 若计算机的字长为若计算机的字长为n位,则位,则n位无符号数可表示的位无符号数可表示的 数数X的范围是的范围是 0X2n1 v当当n=8时,可表示的无符号数的范围为时,可表示的无符号数的范围为0255, v当当n=16时,可表示的无符号数的范围为时,可表示的无符号数的范围为 065535。 1.2.2 有符号数的表示方法有符号数的表示方法 1 1机器数与真值机器数与真值 计算机中的数是用二进制表示的,计算机中的数是用二进制表示的,数的符号也是用数的符号也是用 二进制表示的。二进制表示的。 符号位:符号位:通常为一

4、个数的最高位通常为一个数的最高位 0 0:表示正数表示正数 1 1:表示负数表示负数 若计算机的字长为若计算机的字长为8 8位,则位,则D D7 7为符号位,为符号位,D D6 6D D0 0为数值位为数值位 D7D6D5D4D3D2D1D0 符号符号数值位数值位 例例1.1 1.1 X=X=6565在机器中表示为:在机器中表示为: X = 01000001BX = 01000001B 符号,符号,0 表示正数表示正数 数值位数值位 这种符号数码化的数称为这种符号数码化的数称为机器数机器数。机器数所代表。机器数所代表 的实际数值称为的实际数值称为真值真值。 机器数可以用不同的码制来表示,常用的

5、有机器数可以用不同的码制来表示,常用的有原码原码 和和补码补码表示法。表示法。 2 2原码表示法原码表示法 最高位为符号位,最高位为符号位, 0 0表示正数,表示正数,1 1表示负数,表示负数,其余各位为数值位其余各位为数值位 例例1.21.2若若X= X= 9797则则 XX原 原 = =0 01100001 1100001B B 若若X= X= 9797则则 XX原 原 = =1 11100001 1100001B B 符号位相反符号位相反 数值位相同数值位相同 原码表示数原码表示数0 0有两种表示形式:有两种表示形式: 00原 原 =00000000 =00000000B B 00原 原

6、 =10000000 =10000000B B 注意:注意:n位原码可表示的数位原码可表示的数X的范围是:的范围是: -2n-1+1X2n-1-1 原码特点:原码特点: 简单、直观,与真值的转换简单简单、直观,与真值的转换简单 原码缺点:原码缺点: 进行减法运算麻烦进行减法运算麻烦 解决办法:解决办法: 引入补码表示法引入补码表示法可使减法运算简化为加法运算可使减法运算简化为加法运算 3 3补码表示法补码表示法 正数的补码和原码相同正数的补码和原码相同 负数的补码可由其原码除负数的补码可由其原码除符号位保持不变符号位保持不变外,外,其余其余 各位按位取反,再在最末位加各位按位取反,再在最末位加

7、1 1而形成。而形成。 例例1.3 1.3 假设机器字长为假设机器字长为8 8位,位, 则则 +97+97原 原= =0 01100001 1100001B B则则 9797补 补= = 0 011000011100001B B -97-97原 原= =1 11100001 1100001B B则则 9797补 补= = 符号位保持不变符号位保持不变 1 按位取反,末位加按位取反,末位加1 0011110 + 1 00111111 10011111B 字长为字长为16位?位? 补码具有以下特点:补码具有以下特点: 00补 补 00000000 00000000补 补=00000000 =000

8、00000B B = = 100000000补 补= =00补 补 补码表示法中补码表示法中0 0只有一种表示,即只有一种表示,即0000000000000000B B。 注意:注意:1000000010000000B B在补码表示法中被定义为在补码表示法中被定义为128128。 n n位二进制补码所能表示的数值范围为:位二进制补码所能表示的数值范围为:2 2n-1 n-1X X 2 2n-1 n-1 1 1 若若n=8n=8,则则8 8位二进制补码所能表示的数值范围为位二进制补码所能表示的数值范围为128128127127。 对于一个用补码表示的负数,如果将对于一个用补码表示的负数,如果将

9、XX补 补再求一次补,就可 再求一次补,就可 得到得到 XX原 原。用下式表示为: 。用下式表示为: X X补 补 补 补= =XX原 原 -15 补 补补补= 11110001B补补 = 10001111 B = -15原原 问题:如果问题:如果X为正数,则为正数,则X X补 补 补 补= =? ? XX原 原= X补 补 二进制数二进制数无符号数无符号数原原 码码反反 码码补补 码码 000000000+0+0+0 000000011+1+1+1 000000102+2+2+2 01111110126+126+126+126 01111111127+127+127+127 10000000

10、128-0-127-128 10000001129-1-126-127 10000010130-2-125-126 11111110254-126-1-2 11111111255-127-0-1 数的表示方法数的表示方法 反码:最高一位表示符号,为负数时数值位取反反码:最高一位表示符号,为负数时数值位取反 4. 4. 补码的加减运算补码的加减运算 (1)(1)补码的加法运算规则是:补码的加法运算规则是: X XYY补 补= = X X 补 补 YY补 补 该式表明,当有符号的两个数采用补码形式表示该式表明,当有符号的两个数采用补码形式表示 时,进行加法运算:时,进行加法运算: 可以把符号位和数

11、值位一起进行运算可以把符号位和数值位一起进行运算 若符号位有进位,则丢掉若符号位有进位,则丢掉 结果为两数之和的补码形式结果为两数之和的补码形式 例例1.5 1.5 用补码进行下列运算:(用补码进行下列运算:(3333)()(1515);); (3333)()(1515) 解解: (+33)+(+1533)+(+15)补 补= +33 33补 补+ +15 +15补 补 +3333补 补 = 0010 0001B +15+15补 补 = 0000 1111B 0 0 1 0 0 0 0 1B +33补 补 0 0 0 0 1 1 1 1B +15+15补 补 0000110 符号位和数值位符号

12、位和数值位 一起进行运算一起进行运算 0B +48+48补 补 (3333)(1515)补 补= 3333补 补+ 1515补 补 3333补 补=0010 0001B 1515补 补= 1000 1111补补=1111 0001B 0 0 1 0 0 0 0 1B 3333补 补 + 1 1 1 1 0 0 0 1B 1515补 补 1 0 0 0 1 0 0 1 0B 1818补 补 符号位有进位,则丢掉符号位有进位,则丢掉 (2)补码的减法运算规则是:补码的减法运算规则是: X XYY补 补= =XX补 补 YY补 补 该式表明,求该式表明,求 X X-YY补 补可以用 可以用X X补

13、补与 与 -YY补 补相加来实现 相加来实现 YY补 补是对减数进行求负操作。 是对减数进行求负操作。 一般称已知一般称已知 YY补 补求得 求得 YY补 补的过程叫 的过程叫变补或求负变补或求负。 变补(求负)运算(变补(求负)运算(NEG):已知已知+X补 补 ,求 求-X补 补 规则:规则: 全部位(含符号位)按位取反后再加全部位(含符号位)按位取反后再加1 例如:已知例如:已知+15补 补=0 0 0 0 1 1 1 1B 则则 -15补 补= 1 1 1 1 0 0 0 0B + 1 1 1 1 1 0 0 0 1B 或:或:0- +15补 补=0-10001111B=1111000

14、1B 例例1.6 用补码进行用补码进行XY运算,运算,X=33,Y=15 X补 补 33补 补 0010 0001B Y补 补 15补 补 0000 1111B -Y补 补 -15补 补 1111 0001B 解解: 0010 0001B 33 补 补 + 1111 0001B 15补 补 1 0001 0010B 18 补 补 自然丢失自然丢失 若若 X=33,Y=15,求,求XY,即,即X(Y) -X补 补= 33补补= 0010 0001B X补 补= -(-X)补补= -33补补= 1101 1111B -Y补 补= 15补补= 0000 1111B 1101 1111B X 补 补

15、+ 0000 1111B Y补 补 1110 1110B 18补 补 001 0001B 1B 1001 0010B 补码的作用补码的作用: 1、引入补码,引入补码,将减法运算转化为易于实现的加法运算将减法运算转化为易于实现的加法运算,且,且符号符号 位也当作数据相加位也当作数据相加,从而可简化运算器的结构,提高运算速度。,从而可简化运算器的结构,提高运算速度。 在微型计算机中,有符号数通常都用补码表示,得到的是补码表示的结果。在微型计算机中,有符号数通常都用补码表示,得到的是补码表示的结果。 2、当字长由、当字长由8位扩展到位扩展到16位时,对于用补码表示的数:位时,对于用补码表示的数: 正

16、数的符号扩展应该在前面正数的符号扩展应该在前面补补0 负数的符号扩展应该在前面负数的符号扩展应该在前面补补1。 例如,机器字长为例如,机器字长为8位,位, 46补 补=00101110B, ,46补 补=11010010B, ,从从8位扩展到位扩展到16位位 46补 补=0000 0000 0010 1110B = 002EH 46补 补=1111 1111 1101 0010B = FFD2H 5有符号数运算时的溢出问题有符号数运算时的溢出问题 两个有符号数进行加减运算时:两个有符号数进行加减运算时: 原因:原因:运算结果超出可表示的有符号数的范围运算结果超出可表示的有符号数的范围 现象:现

17、象:(1)两个同符号数相加,结果符号与原数符号相反两个同符号数相加,结果符号与原数符号相反 (2)两个异符号数相减,结果符号与被减数符号相反两个异符号数相减,结果符号与被减数符号相反 例例 设机器字长为设机器字长为8位,以下运算都会发生溢出位,以下运算都会发生溢出 两个正数相加:两个正数相加:(88) (65) = 153 127 正数减负数:正数减负数:(88) (-65) =153 127 负数减正数:负数减正数:(83) (80) =163 128 (1)无符号数的溢出)无符号数的溢出进位标志进位标志CF=1(Carry Flag) 例如:例如:1111 1010B 【 250 】 00

18、11 0010B 【 50 】 1 0010 1100B 【 44 】 进位:进位:CF=1 (2)有符号数的溢出)有符号数的溢出OF(Overflow Flag) v采用一个符号标志采用一个符号标志 补码加法:补码加法:X=Y=0, S=1, 正溢出正溢出 X=Y=1, S=0, 负溢出负溢出 X、Y、S分别为被操作数、操作数、和的符号位分别为被操作数、操作数、和的符号位 v采用进位标志判断采用进位标志判断 CS为符号位产生的进位为符号位产生的进位 CH为最高数值位产生的进位为最高数值位产生的进位 溢出的条件:溢出的条件:CS CH1 0100 0001 65补 补 + 1111 0001

19、15补 补 1 0011 0010 50补 补 符号标志:符号标志:X=0, Y=1, S=0 无溢出无溢出 进位标志:进位标志:CS CH1 10,无溢出无溢出 0110 0000 96补 补 + 0100 0001 65补 补 0 1010 0001 95补 补 符号标志:符号标志:X=0, Y=0, S=1 溢出溢出 进位标志:进位标志:CS CH0 11,溢出溢出 1.2.3 定点数和浮点数定点数和浮点数 在计算机中,数值数据有两种表示法:在计算机中,数值数据有两种表示法:定点表示法和浮点表定点表示法和浮点表 示法示法。分别称为。分别称为定点数和浮点数定点数和浮点数。 1定点数定点数指

20、小数点在数中的位置是固定不变的指小数点在数中的位置是固定不变的 常用的定点数有纯小数和纯整数两种。常用的定点数有纯小数和纯整数两种。 纯小数:纯小数:小数点固定在符号位之后小数点固定在符号位之后 如如 1.1101B,此时机器中所有数均为小数。此时机器中所有数均为小数。 纯整数纯整数: 小数点固定在最低位之后小数点固定在最低位之后 如如 11100111.B,此时机器中所有数均为整数。此时机器中所有数均为整数。 (1)8位有符号纯整数表示:位有符号纯整数表示: 01234567 符号位符号位 小数点位置小数点位置 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0

21、0 0 0 1 1 1 1 1 1 1 1 1 1 127 -1 -127 纯整数表示范围:纯整数表示范围:127127 (2)8位有符号纯小数表示:位有符号纯小数表示: 01234567 符号位符号位 小数点位置小数点位置 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 7 2 1 7 7 2 12 7 2 1 7 7 2 12 7 7 7 1 2 12 2 1 1 ) 2 1 1( 2 1 1 )1( q qa n 纯小数表示范围:纯小数表示范围: 7 7 7 7 2 12 2 12 2浮点数浮点数由由阶码阶码

22、和和尾数尾数两部分组成两部分组成 任意一个有符号的二进制数任意一个有符号的二进制数N可表示为可表示为 N= 2EM 例如:例如:N=2.5=220.625 式中:式中: nE称为称为N的阶码的阶码,是一个有符号的可变整数。,是一个有符号的可变整数。 设设Eejek 1e0 ej为阶符为阶符:若:若ej=0,则则E是正数;若是正数;若ej=1,则则E为负数。为负数。 ek-1e0是阶值是阶值。 nM称为称为N的尾数的尾数,是一个有符号的纯小数。,是一个有符号的纯小数。 设设M=mjm1 mn mj为尾符为尾符:若:若mj=0,则则M为正数;若为正数;若mj=1,则则M为负数。为负数。 尾数尾数M

23、的符号就是浮点数的符号就是浮点数N的符号。的符号。 m1mn是尾值是尾值。 浮点数浮点数N在计算机内的表示形式如下所示。在计算机内的表示形式如下所示。 ejek-1ek-2e0mjm1m2mn 一位阶符一位阶符k位阶值位阶值一位尾符一位尾符n位尾值位尾值 3规格化数与溢出规格化数与溢出 浮点数规格化表示目的浮点数规格化表示目的: 便于浮点数的运算便于浮点数的运算 尾数(尾数(mjm1m2mn)规格化定义:规格化定义: 若若mjm1,则称尾数则称尾数M为为规格化数规格化数; 若若mj=m1,则称尾数则称尾数M为为非规格化数非规格化数。 例如,例如,N=20110.0010100,显然尾数显然尾数

24、 0.001010为非规格化数。为非规格化数。 尾数(尾数(mjm1m2mn)规格化处理:规格化处理:移位移位 尾数每左移一位,阶码就减尾数每左移一位,阶码就减1 尾数每右移一位,阶码就加尾数每右移一位,阶码就加1 直至直至mjm1为止为止 上例中的上例中的N 0.0010100的规格化:的规格化: (1)将将0.0010100左移两位后,变成左移两位后,变成0.1010000mjm1 (2)从阶码从阶码011中减去中减去010,规格化后的,规格化后的N应为应为20010.1010000。 注意:注意:若规格化数若规格化数N= 2EM ,则:,则:1/2|M|1。 溢出定义溢出定义:浮点数超出

25、机器所能表示数的范围。:浮点数超出机器所能表示数的范围。 对规格化的浮点数:对规格化的浮点数: 下溢下溢:阶码小于机器所能表示的最小数阶码小于机器所能表示的最小数 此时机器将把此数作此时机器将把此数作0处理处理 上溢上溢:阶码大于机器所能表示的最大范围阶码大于机器所能表示的最大范围 溢出发生时,机器就产生溢出中断,进入中断处理。溢出发生时,机器就产生溢出中断,进入中断处理。 浮点表示法与定点表示法相比:浮点表示法与定点表示法相比: 优点:优点:所表示的数的范围大,精度高所表示的数的范围大,精度高 缺点:缺点:运算规则比较复杂,成本较高运算规则比较复杂,成本较高 早期的微型计算机:早期的微型计算

26、机: 定点表示,机器中数均为整数,没有处理浮点数的指令定点表示,机器中数均为整数,没有处理浮点数的指令 专门设计了相应的数值协处理器专门设计了相应的数值协处理器(8087,80287,80387等等)来实现对浮点数的运算。来实现对浮点数的运算。 80486、80586的数值协处理器已集成在的数值协处理器已集成在CPU芯片内部。芯片内部。 在本教材中,若无特别说明,数据均采用纯整数定点表示。在本教材中,若无特别说明,数据均采用纯整数定点表示。 1.2.4 计算机中的二进制编码计算机中的二进制编码 1BCD码(码(Binary Coded Decimal) 又称二又称二十进制编码十进制编码 以以四

27、位二进制的不同组合四位二进制的不同组合表示表示十进制数十个数码十进制数十个数码 常用的常用的BCD码为码为8421 BCD码码 即每位十进制数码用四位二进制数来表示即每位十进制数码用四位二进制数来表示 四位二进制数四位二进制数 (从高到低从高到低) 4321 权值权值 23222120 8421 BCD码码 十进制数十进制数8421BCD码码十进制数十进制数8421BCD码码 0000050101 1000160110 2001070111 3001181000 4010091001 例例1.8 十进制数和十进制数和BCD码相互转换。码相互转换。 (1)将十进制数)将十进制数86.5转换为转换

28、为BCD码:码: 8 6 . 5 =(1000 0110 . 0101)BCD (2)将)将BCD码码1001 0111.0100转换为十进制数:转换为十进制数: (1001 0111 . 0100)BCD = 9 7 . 4 在在IBM PC机中,根据在存储器中的存放格式,机中,根据在存储器中的存放格式,BCD码又分为:码又分为: u压缩型压缩型BCD码:码: u非压缩型非压缩型BCD码码: 一个一个字节(字节(8bit)中存放)中存放两个两个十进制数码十进制数码 一个一个字节(字节(8bit)只存放)只存放一个一个十进制数十进制数 例:将十进制数例:将十进制数8762用压缩型用压缩型BCD码表示码表示 8 76 2 1000 01110110 0010 压缩型压缩型BCD码:码:一个一个字节(字节(8bit)中存放)中存放两个两个十进制数码十进制数码 在存储器中的存放格式为:在存储器中的存放格式为: 地址: 低 高 0110 0010(62) 1000 0111(87) 注:低地址存放低字节,高地址存放高字节注:低

温馨提示

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

评论

0/150

提交评论