计算机中信息的表示与运算.ppt
《计算机中信息的表示与运算.ppt》由会员分享,可在线阅读,更多相关《计算机中信息的表示与运算.ppt(69页珍藏版)》请在三一办公上搜索。
1、第3章 电子计算机中信息的表示与运算,3.1 电子计算机中数据的表示 3.2 定点数运算 3.3 浮点数的运算 3.4 面向错误检测与纠错的数据编码3.5 电子计算机中字符的表示 3.6 面向存储与传输的数据编码,第3章 电子计算机中信息的表示与运算,3.1 电子计算机中数据的表示 问题 1 如何表示“正/负”?问题 2 如何表示“小数点”?,用“0”表示“+”用“1”表示“”,符号数字化的数叫机器数,原先的数叫真值。,不表示!默认小数点在数值的最前方或者最后方。这样得到的数叫定点数。,带符号的数 符号数字化的数,+0.1011,+1100,1100,0.1011,真值 机器数,机器数与真值,
2、第3章 电子计算机中信息的表示与运算,3.1.1 定点数(Fixed Point Number)的表示0.定点小数与定点整数 若默认小数点在符号位与数值最高位之间,则计算机实现的是定点小数;若默认小数点在数值最低位之后,则计算机实现的是定点整数。1.原码(符号-绝对值)表示法X=+1011010B,X原=0,1011010B;Y=1011010B,Y原=1,1011010B;Z=+0.1101010B,Z原=0.1101010B;K=0.1101010B,K原=1.1101010B。,书写时,在符号位与数值最高位之间加“,”表示数据是定点整数,书写时,在符号位与数值最高位之间加“.”表示数据是
3、定点小数,计算机并不存储“,”/“.”,第3章 电子计算机中信息的表示与运算,3.1.1 定点数的表示【例3-1】设机器字长为8位,X=0101010B,Y=+1010101B,求X原 和Y原=?解:X原=10101010B,Y原=01010101B【例3-2】设机器字长为8位,X=0,求X原=?解:对于零(0)而言,其原码中的符号位取0、取1都可以,所以 X原=10000000B 或 X原=00000000B,零(0)的原码表示有两个:正零和负零,第3章 电子计算机中信息的表示与运算,3.1.1 定点数的表示 原码形式的n位定点整数的表示范围是:(2n11)+(2n11)例如,8位定点整数的
4、表示范围是:(271)+(271),即:127+127;16位定点整数的表示范围是:(2151)+(2151),即:32767+32767原码表示的n位定点小数的表示范围是:(12(n1)+(12(n1),第3章 电子计算机中信息的表示与运算,3.1.1 定点数的表示 为了扩大表数范围,在数据都是正数的情况下,可以把符号位省掉。这样n位定点整数的表示范围是:0+(2n 1)例如,8位定点整数的表示范围是:0+(281),即:0+255;16位定点整数的表示范围是:0+(2161),即:0+65535,可见,定点数又分为带符号数和无符号数。原码和后面介绍的补码、反码都是针对带符号数的。,第3章
5、电子计算机中信息的表示与运算,原码简单明了,易于和真值转换,但是基于原码实现的加、减运算比较复杂,即在执行的加、减运算时,不能直接运算。需要先判断两个操作数的符号以及两个操作数绝对值的相对大小,然后再执行所需要的运算。,第3章 电子计算机中信息的表示与运算,第3章 电子计算机中信息的表示与运算,能否找到一个与负数等价的正数来代替该负数,然后用加法来代替减法呢?答案是肯定的,就是采用补码来表示数据。,(2)补码,例子,纠正快了2小时的时钟,逆时针,顺时针,时钟以 12为模,结论:,1.两个互为补数的数,它们绝对值之和即为 模 数。,2.一个负数加上“模”即得该负数的补数。,3.正数的补数即为其本
6、身。,补 码 的 实 例,计数器(模 16),1011,1011,0000,+0101,1011,10000,补 码(符号数字化的补数),如,x=+1010,=100000000,x补=0,1010,1,0101000,用 逗号 将符号位和数值位隔开,N位定点整数,小数,x 为真值。,x=+0.1110,如,x补=0.1110,1.0100000,=10.0000000,在机器字长为8位时,+1补=0,0000001B,+127补=0,1111111B,1补=28 1=1,1111111B,127补=28 127=1,0000001B,+0补=00000000B,0补=28 0=0000000
7、B,在补码中,零只有一种形式。那么,原码中用于表示负零的那个码点10000000B在定点整数补码中被用来表示2n 1,例如128(n=8);在定点小数补码中被用来表示-1。,求补码的口诀,=100000,=1,0110,10101+1,=1,0110,因 x原=1,1010,+1,课堂练习,例3-3 设机器字长为8位,X=46,求X补=?解:X原=10101110B。除了符号位外,对X原每位取反得到11010001B,在最低位加1得到11010010B。所以X补=11010010B例3-4 设机器字长为16位,Y=116,求Y补=?解:Y原=1000 0000 0111 0100 B,则Y补=
8、1111 1111 1000 1100 B=FF8CH,观察上面两道例题的结果,一个负数的原码从它的低位算起,遇到第一个“1”时,原码与补码是相同的。超过这个“1”直至符号位之间的那段数位,原码与补码是相反的。,十六进制形式,第3章 电子计算机中信息的表示与运算,3.1.1 定点数的表示 补码形式的n位定点整数的表示范围是:2n1+(2n11)例如,8位定点整数的表示范围是:27+(271),即:128+127;16位定点整数的表示范围是:215+(2151),即:32768+32767补码表示的n位定点小数的表示范围是:1+(12(n1),第3章 电子计算机中信息的表示与运算,反码通常作为由
9、原码求补码 或 由补码求原码的中间过渡。对于正数,反码与原码和补码相同,直接在二进制数值前面加上符号位“0”即可。对于负数,反码就是将负号“”替换成“1”,然后将二进制数值逐位取反而得到。在反码中,零有两个编码:+0反=000000B,0反=111111B。,(3)反码,-0,-1,-128,-127,-127,-126,-3,-2,-1,设机器数字长为 8 位(其中一位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?,第3章 电子计算机中信息的表示与运算,原码、补码和反码,它们的一个共同特点就是将符号作为最高位与其数值部分一起编码,而且正号用“0”表示,
10、负号用“1”表示。这就给比较不同符号的数据的相对大小带来了麻烦。在机器看来,正数小于负数。给每一个二进制整数的真值加上一个常数2n(n为真值的位数),使得正数的最高位变成“1”、负数的最高位变成“0”,那么,机器比较得到的两个数之间的相对大小就是其真实的相对大小,这样得到的编码就称为“移码”。,(4)移码(自学),第3章 电子计算机中信息的表示与运算,例如,X=0101011B,Y=0101011B,则 X移=27+X=10000000B+0101011B=10101011B;Y移=27+Y=10000000B+(0101011B)=01010101B;比较其大小,10101011B01010
11、101B,所以XY。,(4)移码,同一个真值的移码与其补码的差别仅仅是最高位相反。如果将补码符号位中的“0”改为“1”或者“1”改为“0”,即可得到该真值的移码。,第3章 电子计算机中信息的表示与运算,例如,X=+0000000B,Y=0000000B,则X移=27+X=10000000B+0000000B=10000000B;Y移=27+Y=10000000B+(0000000B)=10000000B;所以,+0移=0移,在移码中零有唯一的编码。,(4)移码,移码仅针对定点整数而言的,定点小数没有移码的定义,第3章 电子计算机中信息的表示与运算,3.1 电子计算机中数据的表示 3.1.1 定
12、点数的表示 3.1.2 浮点数的表示,计算机只能识别定点数。浮点数怎样处理呢?,借助于数学中的“科学记数法”,把浮点数转化成定点数。,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数(Float-point Number)的表示 一个浮点数 N 将被表示成:N=M RE。其中,M 称为尾数,是一个带小数点的实数;R称为基值,是一个常整数;E称为阶码,是一个整数。,在计算机中用定点小数表示,一般取2,也可取8或16,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示,浮点数的编码格式,尾数越长,表示的精度越高;阶码越长,表示的范围越高。在固定长度的浮点数格式内,这两者是一对矛
13、盾,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示 为了利用尾数所占的二进制数位来表示最多的有效数字,浮点数一般采用“规格化形式”。所谓“规格化形式”是指尾数绝对值的最高位(第一位)必须为1,即尾数绝对值必须大于或等于1/R,这样浮点数就有n个有效数字了。,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示 通过移动尾数小数点的位置,可将不规格化浮点数转化成“规格化”(Normalize)浮点数。尾数的小数点每向左/向右移动1位,就应该给阶码+1或-1,以保证浮点数数值不变。,在计算机中,小数点的位置是固定的,所以只能移动尾数。“规格化”在计算机内部的操作是,尾数每
14、向左/向右移动1位,阶码就-1/+1。,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示 在规格化过程中,当浮点数阶码小于最小阶码时,称发生“下溢”(Underflow)。这时阶码(采用移码表示)为全0,又由于发生“下溢”的浮点数的绝对值很小,所以机器强制把尾数置成全0,这样整个浮点数的所有数位就都是0,便于实现“判断一个数是否为零”。这样得到的浮点数零称为机器零。机器零是一个特殊的合法的浮点数编码,尽管它不符合规格化表示的要求。,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示 同样地,在规格化过程中,浮点数的阶码还会出现“大于最大阶码”的现象,即全1的阶码(采用
15、移码表示)在加1后变成了全0,计算结果的绝对值超出了定长浮点数所能表示的最大绝对值,这种现象称为“上溢”(Overflow)。这时,机器将停止运算,进行溢出处理。可见,浮点数的溢出是由阶码溢出导致的。,上溢 阶码 最大阶码 停机进入出错处理下溢 阶码 最小阶码 按 机器零 处理,第3章 电子计算机中信息的表示与运算,第3章 电子计算机中信息的表示与运算,例3-5 设机器字长为16,请将26分别表示成二进制定点数和规格化的浮点数。其中浮点数的阶码占5位(含一位阶符),尾数占11位(含一位数符)。解:设X=26=11010B,采用科学计数法表示成X=0.11010B2101B,所以,X原=1,00
16、0000000011010 X补=按照规格化浮点数的编码格式,X表示为 X原=0,0101;1.1101000000 X补=0,0101;1.0011000000,第3章 电子计算机中信息的表示与运算,例3-6 请写出53/512对应的数,分别用原码和补码表示的规格化浮点数(设浮点数格式同上例,阶码用移码表示)。解:53/512=0.000110101B=(0.110101B)211B 原码表示尾数:1.1101010000;补码表示尾数:1.0010110000;原码表示阶码:1,0011;补码表示阶码:1,1101;移码表示阶码:0,1101。原码尾数的规格化浮点数:0,1101;1.11
17、01010000;补码尾数的规格化浮点数:0,1101;1.0010110000。,第3章 电子计算机中信息的表示与运算,3.1.2 浮点数的表示 为了便于软件的移植和对软件中浮点数运算发生特殊情况时进行处理,并鼓励开发面向数值计算的优秀程序,IEEE于1985年推出了“浮点数表示及运算标准”,即IEEE标准 754。目前几乎所有的微处理器都采用这一标准。由于该标准的成功,它的设计者Kahan因此荣获1989年“图灵奖”。,感兴趣的同学,请自行阅读、了解。,第3章 电子计算机中信息的表示与运算,3.1 电子计算机中数据的表示 3.2 定点数运算 3.2.1 逻辑运算 3.2.2 移位运算3.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 信息 表示 运算

链接地址:https://www.31ppt.com/p-6023401.html