文档详情

计算机组成原理数据的机器表示

豆浆
实名认证
店铺
PPT
550.50KB
约41页
文档ID:6713419
计算机组成原理数据的机器表示_第1页
1/41

1,第二章 数据的机器表示,主要内容:真值、机器数的概念 原码、补码、反码、真值,及其相互转换 定点数与浮点数的表示范围字符编码与汉字编码2,A、数据的分类,数据表示的分类:数值数据表示无符号数带符号数原码、补码、反码、移码定点、浮点非数值数据表示字符数据和字符串 汉字数据 十进制数和数串(自学),3,B、数值型数据的表示方法,一个预备知识二进制数B、八进制数Q十进制数D(可省略)、十六进制数H两个术语定义真值:在现实生活中,用正号、负号加绝对值表示数值的数称为真值,如123、-128等机器数:在计算机内部使用的、连同符号一起数码化了的数,称为机器数要做三件事区分数据的正负、选择数值的码制、确定小数点的位置4,一、带符号数的表示方法,带符号机器数主要有3种编码方式:原码补码反码带符号数最常用的编码方式有2种:原码补码,5,1、原码表示,原码表示法规定:一个机器字中,最高位为符号位,符号位为0表示正数,符号位为1表示负数,数值部分与真值相同若定点小数的原码形式为 x0.x1x2…xn,则原码表示的定义: [X]原= 其中,[X]原是机器数,X是真值。

例如,x=+0.1001,则[x]原=0.1001 x= -0.1001,则[x]原=1.1001对于正数x=+0.x1x2…xn,[x]原= 0.x1x2…xn 对于负数x= -0.x1x2…xn,[x]原= 1.x1x2…xn 对于0,有两种形式: [+0]原 = 0.00…0, [ -0]原 = 1.00…0,X 0 ≤X<11 – X = 1 + |X| -1<X≤0,,6,原码表示(续),若定点整数的原码形式为xn…x2x1x0 ,定点整数的原码定义: [x]原=例如,x=+1011,则[x]原=00001011 x= -1011,则[x]原=10001011关于原码表示的结论:真值0有两种不同的表示形式(+0、-0)小数原码表示范围为:-1

若定点小数的补码形式为x0.x1x2…xn,则补码的定义: [X]补= 其中,[X]补是机器数,X是真值X 0 ≤X<12 + X = 2 - |X| - 1≤ X< 0,例如, x=+0.1011,则[x]补=0.1011 x= -0.1011,则[x]补=1.0101对于正数x=+0.x1x2…xn,[x]补= 0.x1x2…xn 对于负数x= -0.x1x2…xn,[x]补= 10.0…0-0.x1x2…xn 对于0,只有一种形式[+0]补=[-0]补 =0.00…0,8,补码表示(续),若定点整数的补码形式为xn…x2x1x0,定点整数的补码定义: [x]补=例如, x = +1011,则[x]补 = 00001011 x = -1011,则[x]补 = 11110101,由真值转换为补码时,很少用补码定义式计算,通常把真值先转换为原码,再由原码转换为补码事实上,按照对补码定义式的理解,有如下简便的转换方法9,由真值、原码转换为补码,正数的补码表示与原码相同。

如:[x]原=0.1010 ,[x]补=0.1010负数原码转换为补码的方法之一:符号位保持1不变,数值位按位求反,末位加1 如: [x]原 = 1.1010 按位求反 1.0101 末位加1 + 1 [x]补 = 1. 0110,,负数原码转换为补码的方法之二:符号位保持1不变,在数值位中从低位向高位找1,第一个1及其右边的0保持不变,数值位的其余部分求反 如: [x]原 = 1. 10 10 不变 求反 不变 [x]补 = 1. 01 10,以上方法与通过补码定义式计算结果完全一致,但更为简便,是实现求补电路的重要依据,也是实现求补电路普遍采用的方法10,由补码表示转换为原码与真值,正数补码与原码相同,不需要转换负数补码转换为原码,可以采用上述方法,对补码再求补码,实现逆转换,即对补码再求补码结果为原码。

关于补码表示的结论:在补码表示中,仍以最高位作为符号位,0为正数、1为负数补码的符号位是数值的一部分,可以和数值位一起参与运算,不需要单独处理数值0只有一种表示,无+0和-0之分,补码的负数域不含0负数补码和原码相比,多出了一个负数-1或-2n以n+1位整数为例,原码绝对值最大的负数为-(2n-1),而补码绝对值最大的负数为-2n,其原因是在补码中0只占一个码点补码表示可以把减法转化为加法,用一套电路完成加法和减法.,11,3、反码表示,反码符号位的表示方法与原码相同,数值部分表示如下:对于正数,数值部分与真值的形式相同;对于负数,将真值的数值部分按位求反若纯小数的反码序列为x0.x1x2…xn ,则:(n为数值的位数) [x]反=例如,x = + 0.1101, [x]反 = 0.1101 x = - 0.1101, [x]反 = 1.0010,,X 0 ≤X<1(2 – 2-n) + X - 1< X ≤ 0,12,反码表示(续),对于正数 x=+0.x1x2…xn,[x]反= 0.x1x2…xn 对于负数 x= -0.x1x2…xn,[x]反= 1.x1x2…xn对于0,有两种形式:[+0]反 = 0.00…0, [-0]反 = 1.11…1,,,,若定点整数的补码形式为xn…x2x1x0,定点整数的补码定义: [x]反=[x]反=2-2-n+x,[x]补=2+x [x]补=[x]反+2-n 有以下结论:反码的末位加1等于对应的补码。

反码的符号位也可以作为数值位直接参与运算X 0 ≤X<2n(2n+1 – 1) + X - 2n< X ≤ 0,13,二、数的定点表示与浮点表示,在现实世界中,我们所遇到的数可能既有整数部分,又有小数部分,这就存在一个如何表示小数点的问题,即如何确定小数点的位置根据小数点的位置是否固定,数的格式可分为:定点表示浮点表示其中,定点数又分为无符号定点数、带符号定点数对于数据表示,我们最关心两项指标:第一,表示范围,即在正负两个方向上各能表示多大的数第二,分辨率,也就是表示数的精细程度,14,1、定点表示法——无符号定点数,所谓无符号数定点数,是指整个机器字的二进制位全部用来表示数值位,没有符号位置;同时约定小数点在最低数位之后,而且不出现在数码序列中 例、N1 = 01001,表示9;N2 = 11001,表示25 字长为n+1位的无符号数xn…x2x1x0有以下特性:,无符号定点数值的表示范围为:0~2n+1-1,分辨率为115,无符号定点数,例、以8位无符号数为例,说明其最大值为(28-1)其它典型值,最小非零正数和零,可进行同样的分析。

16,2、定点表示法——带符号定点整数,带符号定点整数是纯整数,它约定机器字的最高位为符号位,小数点在最低数位之后、且不出现在数码序列中,带符号定点整数可以是原码表示或补码表示格式为:以下分原码和补码进行讨论17,假设:带符号的定点整数代码序列为xn…x2x1x0 ,约定xn为符号位,小数点在最低位之后其典型值如下:,18,现以8位原码为例,说明带符号定点整数的绝对值最大负数-(27-1)、最大正数(27-1)得到结论:(注意,序列下标和权值的指数一致)原码定点整数表示范围:-(2n-1)~(2n-1)补码定点整数表示范围:-2n ~(2n-1)原码、补码定点整数分辨率:1,19,3、定点表示法——带符号定点小数,带符号定点小数是纯小数,它约定机器字的最高位为符号位,小数点在符号位之后、最高数值位之前、且不出现在数码序列中 ,带符号定点小数可以是原码表示或补码表示格式:以下分原码和补码进行讨论20,假设:带符号的定点小数代码为x0.x1x2…xn ,约定x0为符号位,小数点在符号位和最高数位之间.其典型值如下:,21,现以8位原码为例,说明带符号定点小数的绝对值最大负数-(1-2-7)、最大正数(1-2-7)。

由此得到:(注意:序列下标和权值的指数一致)原码定点小数表示范围:-(1-2-n)~(1-2-n)补码定点小数范围:-1 ~(1-2-n)原码、补码定点小数分辨率:2-n,22,4、浮点数的表示方法,把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,相当于小数点的位置随数的比例因子不同在一定范围内可自由浮动,所以把这种表示方式称为浮点表示法任意一个二进制数可以写成: N=2e×M M称为浮点数的尾数,纯小数表示,基数为2; e为浮点数的指数,也叫阶码,整数表示,底数为2浮点数在机器中由阶码和尾数来表示尾数部分给出浮点数有效数字的数位,决定浮点数的精度;阶码指明小数点在数据中的位置,决定浮点数的表示范围23,(1)浮点数的格式,浮点数的表示格式,数符决定浮点数的正负;阶符仅决定阶码本身的正负阶码通常使用移码表示,移码是计算机中又一种机器数的编码方式下面先介绍移码整数,小数,24,(2)移码表示法,移码通常用来表示浮点数的阶码,由真值加一个固定的常数生成,这个固定的常数称为偏移量 设定点整数移码的形式为xm…x2x1 x0,则移码定义为: [x]移=2m+x -2m≤x<2m [x]移是机器数,x是真值,2m是一个固定的偏移量,它也是xm的位权,移码共有m+1位。

例、某浮点数阶码8位,含一位符号位,移码表示当阶码x = -0111 1111,则: [x]移 = 27 - 0111 1111 = 0000 0001,25,移码的特点,最高位为0表示负数,为1表示正数移码全0时真值最小,全1时真值最大0的移码只有一个,[±0]移=100…0同一数值的移码和补码,数位相同,而符号相反便于阶码大小的比较,便于对阶操作,有利于简化机器中的判零电路26,(3)规格化,为了提高浮点数的表示精度,当尾数不为0时,尾数域的最高数位必须是一个有效值如果最高数位不是有效值,则通过尾数移位并修改阶码的办法,使其变成有效值,这称为浮点数的规格化对规格化的浮点数规定如下:如果尾数是原码表示,尾数的最高有效位一定为1 如,0.1101×2-2 为规格化的浮点数表示, 0.01101×2-1则不是如果尾数用补码表示,尾数的最高有效位一定与符号位相反如:0.1x…x和1.0xx…x是规格化的补码表示1/2是个特殊的浮点数,无规格化表示,所以不在浮点数规格化表示的范围内。

下载提示
相似文档
正为您匹配相似的精品文档