哈工大版计算机组成原理第2章---计算机中信息的表示与运算_第1页
哈工大版计算机组成原理第2章---计算机中信息的表示与运算_第2页
哈工大版计算机组成原理第2章---计算机中信息的表示与运算_第3页
哈工大版计算机组成原理第2章---计算机中信息的表示与运算_第4页
哈工大版计算机组成原理第2章---计算机中信息的表示与运算_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、人才是培养出来的人才是培养出来的本章内容本章内容学习目标学习目标数据的表示数据的表示 定点数的运算定点数的运算 浮点数的运算浮点数的运算 字符的表示字符的表示 面向错误检测与纠错的数据编码面向错误检测与纠错的数据编码面向存储与传输的数据编码面向存储与传输的数据编码 人才是培养出来的人才是培养出来的p思考如下几个问题:问题思考如下几个问题:问题 1-1-如何表示如何表示“正正/ /负负”? p思考如下几个问题:问题思考如下几个问题:问题 2-2-如何表示如何表示“小数点小数点”? 用用“0”表示表示“+”用用“1”表示表示“”不表示不表示!默认小数点在数值的最前方或者最后方默认小数点在数值的最前

2、方或者最后方。 这样得到的数叫这样得到的数叫定点数定点数(Fixed point number)小数点被默认位于数值前部的叫小数点被默认位于数值前部的叫 定点小数定点小数小数点被默认位于数值后部的叫小数点被默认位于数值后部的叫 定点整数定点整数。一台计算机只选择一台计算机只选择实现一种定点数实现一种定点数人才是培养出来的人才是培养出来的真值:真值:真正的数值,即带真正的数值,即带“”、“”号的数。号的数。 定义定义即人类日常数学计算中所用到的数字表示形式:即人类日常数学计算中所用到的数字表示形式:+7、+101010010、等、等机器数:机器数: 将符号数字化之后的数。将符号数字化之后的数。用

3、于存储在计算机中的数;用于存储在计算机中的数;当然,这些数都是二进制形式当然,这些数都是二进制形式思考思考例如例如(人类的)真值(人类的)真值机器数机器数+ 1100 11000 1011小数点的位置小数点的位置1 1011小数点的位置小数点的位置0 1100小数点的位置小数点的位置1 1100小数点的位置小数点的位置约定:最高位约定:最高位MSB为符号位为符号位人才是培养出来的人才是培养出来的如何将这些真值连同符号位在计算机中表示呢?如何将这些真值连同符号位在计算机中表示呢?数值部分数值部分符号位符号位 一种新的编码一种新的编码(保证编码后的数可以进行高效的各种运算)(保证编码后的数可以进行

4、高效的各种运算)思考思考依据编码方案不同,机器数分为:依据编码方案不同,机器数分为:原码原码补码补码反码反码移码移码人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示0. 定点小数定点小数 与与 定点整数定点整数若默认小数点在符号位与若默认小数点在符号位与 数值最高位之间,则计算数值最高位之间,则计算 机实现的是机实现的是定点小数定点小数;若默认小数点在数值最低位之后,则计算若默认小数点在数值最低位之后,则计算 机实现的是机实现的是定点整数定点整数。1. 原码(符号原码(符号-绝对值)表示法绝对值)表示法 x 1 x 0 x原原 = 1 x 0 x 1X:真值:真值x原原

5、:机器数的原码表示形式:机器数的原码表示形式其中其中公式公式-定点小数定点小数x原原 = 0,x 2n x 02n x 0 x 2nx 为真值为真值n 为整数的位数为整数的位数x原原为机器数的原码表示形式为机器数的原码表示形式其中其中公式公式-定点整数定点整数人才是培养出来的人才是培养出来的规律规律若若X 0./,x1x2xn 则则x原原 = 0./,x1x2xn若若X - 0. /,x1x2xn 则则x原原 = 1. /,x1x2xn若若x 0则则x原原 = ?X = + 1011010B, X原原 = 0,1011010B;Y = 1011010B, Y原原 = 1,1011010B;Z,

6、 Z原原 ;K, K原原 = 1. 1101010B。练习练习书写时,在符号位与数值最高位之间书写时,在符号位与数值最高位之间加加“.”表示数据是定点小数表示数据是定点小数 示例示例X 0.1001 ,则,则x原原 X 0.1001 ,则,则x原原 0.10011 0.1001 1.1001书写时,在符号位与数值最高位之间加书写时,在符号位与数值最高位之间加“,”表示数据是定点整数表示数据是定点整数 计算机并不存储计算机并不存储“,”/ “.” 人才是培养出来的人才是培养出来的【例例2-1】 设机器字长为设机器字长为8位,位,X = 0101010B, Y = + 1010101B,求,求X原

7、原 和和Y原原=? 解:解:X原原 = 10101010B,Y原原 = 01010101B2. 1. 1 定点数的表示定点数的表示习题习题【例例2-2】 设机器字长为设机器字长为8位,位,X = 0,求,求X原原=?解:对于零(解:对于零(0)而言,其原码中的符号位取)而言,其原码中的符号位取0、取、取1都可以,所以都可以,所以 X原原 = 10000000B 或或 X原原 = 00000000B + 0原原 0原原 结论:结论:零零(0)的原码表示有两个:正零和负零的原码表示有两个:正零和负零+0和和-0是两个不同的数!是两个不同的数!人才是培养出来的人才是培养出来的2. 1. 1 定点数的

8、表示定点数的表示习题习题【例例2-3】 已知已知 x原原 = 1.0011 求求 x解解:x = 1 x原原 = 1 1.0011 = 0.0011【例例2-4】 已知已知 x原原 = 1.0101 求求 x【例例2-5】 已知已知 x原原 = 1,1010 求求 x【例例2-6】 已知已知 x原原 = 1,1100求求 xx = 1 x原原 = 1 1.0101 = 0.0101解解:x = 24 x原原 = 10000 1,1010 = 1010解解:x = 24 x原原 = 10000 1,1100 = 1100解解:人才是培养出来的人才是培养出来的 (2n11) +(2n11)2. 1

9、. 1 定点数的表示定点数的表示F表示范围表示范围(1 1)定点整数)定点整数 原码形式的原码形式的n位定点整数的表示范围是:位定点整数的表示范围是:8位定点整数的表示范围是位定点整数的表示范围是: (271) +(271),即,即:127+127;16位定点整数的表示范围是位定点整数的表示范围是:(2151) +(2151),即,即:32767+32767(2 2)定点小数)定点小数原码表示的原码表示的n位定点小数的表示范围是位定点小数的表示范围是: (12(n1) ) + (12(n1) )人才是培养出来的人才是培养出来的原码原码简单明了,易于和真值转换,但是原码实现的加、减运算比较复杂。

10、简单明了,易于和真值转换,但是原码实现的加、减运算比较复杂。比如,用户指定计算(比如,用户指定计算(+5)+(-3)最终机器执行的是)最终机器执行的是5-3。用户指定的加法。用户指定的加法运算却要使用减法器。那么能否找到一个与负数等价的正数来代替负数,然运算却要使用减法器。那么能否找到一个与负数等价的正数来代替负数,然后用加法代替减法呢?后用加法代替减法呢?2. 1. 1 定点数的表示定点数的表示为为了扩大表数范围,在数据都是正数的情况下,可以把符号位省掉。了扩大表数范围,在数据都是正数的情况下,可以把符号位省掉。这样这样n位定点整数的表示范围是:位定点整数的表示范围是:0 +(2n 1)8位

11、定点整数的表示范围是位定点整数的表示范围是:0 +(281),即,即: 0+255;16位定点整数的表示范围是位定点整数的表示范围是:0 +(2161),即,即: 0+65535 可见,定点数又分为带符号数和无符号数。可见,定点数又分为带符号数和无符号数。 原码和后面介绍的补码、反码都是针对原码和后面介绍的补码、反码都是针对 带符号数的。带符号数的。F原码的不足原码的不足F表示范围表示范围人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示减法运算减法运算 加法运算加法运算能!机器数采用补码表示就能实现这个愿望。能!机器数采用补码表示就能实现这个愿望。思考思考转换成转换成逆

12、时针旋转逆时针旋转 格格顺时针旋转顺时针旋转 格格方法方法1方法方法2欲表示欲表示3点钟点钟39可见:可见:3+9相互等价相互等价我们称:我们称:+ 9 是是 3 以以 12 为模的补数为模的补数记作:记作:3 + 9 (mod 12)人才是培养出来的人才是培养出来的二进制数二进制数1011 可用可用 + 0101 代替代替2. 1. 1 定点数的表示定点数的表示类似类似 4 + 8 (mod 12) 5 + 7 (mod 12)1. 两个互为补数的数,它们绝对值之和即为两个互为补数的数,它们绝对值之和即为 模模 数数。2. 一个负数加上一个负数加上 “模模” 即得该负数的补数。即得该负数的补

13、数。3. 正数的补数即为其本身。正数的补数即为其本身。结论结论答案是肯定的,就是采用答案是肯定的,就是采用 补码补码来表示数据来表示数据 举例举例以以16为模时,为模时,记作记作 1011 + 0101 (mod 24)同理同理 011 + 101 (mod 23) 0.1001 + 1.0111 (mod 2)人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-补码补码公式公式-定点小数定点小数公式公式-定点整数定点整数x补补 = x 1 x 02 + x 0 x 1(mod 2)x 为真值为真值x补补为机器数的补码表示形式为机器数的补码表示形式其中其中x补补 = 0,

14、x 2n x 02n+1 + x 0 x 2n(mod 2n+1)x 为真值为真值n 为整数的位数为整数的位数x补补为机器数的补码形式为机器数的补码形式其中其中人才是培养出来的人才是培养出来的习题习题2. 1. 1 定点数的表示定点数的表示-补码补码xx补补x = 0.1100000 x补补 = 2+( 0.1100000 )0.1100000用用 小数点小数点 将符号位将符号位和数值位隔开和数值位隔开【例例2-7】 已知已知 x为定点小数,求为定点小数,求x补补 人才是培养出来的人才是培养出来的习题习题2. 1. 1 定点数的表示定点数的表示-补码补码【例例2-8】 已知已知 x为定点整数,

15、求为定点整数,求x补补 x = +1010 x补补 = 27+1 +( 1011000 )= 1000000001011000 x补补 = 0,1010 x = 10110001,0101000用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开人才是培养出来的人才是培养出来的20.1100 习题习题【例例2-9】 已知已知x 0.1100 ,则,则 x补补 2. 1. 1 定点数的表示定点数的表示-补码补码【例例2-10】已知已知x ,则,则 x补补 【例例2-11】已知已知x补补 0.1010 则则 x 【例例2-12】已知已知x补补 1.1010 则则 x 【例例2-13】0.000

16、0补补 【例例2-14】0.0000补补 0.0000 (mod2)人才是培养出来的人才是培养出来的习题习题【例例2-15】已知已知 x 1001 ,则,则x补补 2. 1. 1 定点数的表示定点数的表示-补码补码【例例2-16】已知已知 x 1001 ,则,则x补补 0,10012411001 10000010010101111,0111【例例2-17】在机器字长为在机器字长为8位时,位时,+1补补 = 0,0000001B,+127补补 = 0,1111111B, 1补补 = 28 1 = 1,1111111B,127补补 = 28 127 = 1,0000001B, +0补补 = 000

17、00000B, 0补补 = 28 0 = 00000000B 人才是培养出来的人才是培养出来的(3)求补码的快捷方式)求补码的快捷方式0.x1x2xn0.x1x2xn1.x1x2xn1.x1 x2xn0.001 若若x 0.x1x2xn ,则,则 【x】原原 【x】补补 若若x 0.x1x2xn ,则,则 【x】原原 【x】补补 0,x1x2xn0,x1x2xn 若若x x1x2xn ,则,则 【x】原原 【x】补补 1,x1x2xn1,x1 x2xn0.001符号位除外,各位取反,末尾加符号位除外,各位取反,末尾加1符号位除外,各位取反,末尾加符号位除外,各位取反,末尾加1符号位在内,各位取

18、反,末尾加符号位在内,各位取反,末尾加1符号位在内,各位取反,末尾加符号位在内,各位取反,末尾加1原码原码补码补码【x】补补【x】补补负数负数负数负数负数负数负数负数 若若x x1x2xn ,则,则 【x】原原 【x】补补 各位取反,各位取反,末位加末位加1 各位取反,各位取反,末位加末位加1人才是培养出来的人才是培养出来的习题习题【例例2-18】设机器字长为设机器字长为8位,位,X = 46,求,求X补补 =?解:解:X原原 = 10101110B。除了符号位外,对。除了符号位外,对X原原每位取反每位取反得到得到11010001B,在最低位加在最低位加1得到得到11010010B。所以所以

19、X补补 =11010010B【例例2-19】设机器字长为设机器字长为16位,位,Y = 116,求,求Y补补 =?解:解: Y原原 = 1000 0000 0111 0100 B, 则则Y补补 = 1111 1111 1000 1100 B = FF8CH十六进制形式十六进制形式2. 1. 1 定点数的表示定点数的表示-补码补码人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-补码补码(1 1)定点整数)定点整数补码形式的补码形式的n位定点整数的表示范围是:位定点整数的表示范围是: 2n1 +(2n11)8位定点整数的表示范围是位定点整数的表示范围是:16位定点整数的表

20、示范围是位定点整数的表示范围是: 27 +(271),即,即: 128+127;215 +(2151),即,即: 32768+32767(2 2)定点小数)定点小数补码表示的补码表示的n位定点小数的表示范围是位定点小数的表示范围是: 1 + (12(n1) )F表示范围表示范围人才是培养出来的人才是培养出来的 y补补 = 1.y1 y2 yn + 2-n2n12n1 2n 2 2n苦练基本功苦练基本功继续继续则 y补补=_ 111.1 0.00.1 0.11.1 1.111. . . .1= 已知已知y = 0. y1 y2 yn人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点

21、数的表示-补码补码真值真值0, 10001101, 01110100,10001101,1000110不能表示不能表示x = + 70 x = 0.1110 x = 0.0000 x = 70 x = 0.1110 x = 0.0000 x = 1.0000 1补补 = 2 + x = 10.0000 1.0000 = 1.0000+ 0补补 = 0补补由小数补码定义由小数补码定义x补补 = x 1 x 02+ x 0 x 1(mod 2)= 1000110= 1000110 x补补 x原原提示提示小数时,小数时,-1的补码在形式上的补码在形式上与与-0的原码一致的原码一致人才是培养出来的人才

22、是培养出来的2. 1. 1 定点数的表示定点数的表示-补码补码(1)已知)已知 【x】补补 1.1011,则则 【x】补补 (2)已知)已知 【x】补补 0.1011,则则 【x】补补 (3)已知)已知 【x】补补 1,1011,则则 【x】补补 (4)已知)已知 【x】补补 0,1011,则则 【x】补补 0, 01011, 0101结论:结论:【x】补补 和和【x】补补 之间的关系是连之间的关系是连 同符号位在内按位取反末位加同符号位在内按位取反末位加1 人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-补码补码(5)已知)已知 【x】原原 0.1011,则则 【x

23、】补补 (6)已知)已知 【x】原原 1.1011,则则 【x】补补 (7)已知)已知 【x】补补 1,1011,则则 【x】原原 (8)已知)已知 【x】补补 0,1011,则则 【x】原原 0, 01011, 1011人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-反码反码x反反 = x 1 x 0( 2 2-n) + x 0 x 1(mod 2 2-n)x反反为机器码的反码表示为机器码的反码表示x 为真值为真值n为整数的位数为整数的位数其中其中公式公式-定点小数定点小数公式公式-定点整数定点整数x反反 = 0,x 2n x 0( 2n+1 1) + x 0 x

24、2n(mod 2n+11)x 为真值为真值n 为整数的位数为整数的位数x反反为机器数的反码表示为机器数的反码表示其中其中反码是相对原码的反码是相对原码的反码是相对原码的反码是相对原码的人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-反码反码习题习题【例例2-21】已知已知 x ,则,则 【x】反反 【例例2-22】已知已知 x ,则,则 【x】反反 2 24 10.00000.00011.11110.1001【例例2-23】已知已知 x 1001,则,则 【x】反反 0,1001【例例2-24】已知已知 x 1001,则,则 【x】反反 241110011000001

25、00101011110101110101101,0110【反码反码】就是针对就是针对 【原码原码】而提出的!而提出的!【原码原码】【反码反码】相反相反相反相反人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-反码反码1x2xn1 x2xnF 若若 x 1x2xn 则则 【x】反反 F 若若 x 1x2xn 则则 【x】反反 (1 1)定点小数)定点小数F规律规律(1 1)定点整数)定点整数0,x1x2xnF 若若 x x1x2xn 则则 【x】反反 1,x1 x2xnF 若若 x x1x2xn 则则 【x】反反 负数时,每位取反,添加符号位!负数时,每位取反,添加符号位

26、!负数时,每位取反,添加符号位!负数时,每位取反,添加符号位!人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-反码反码F规律规律【X】原码原码符号位除外,各位取反符号位除外,各位取反符号位除外,各位取反符号位除外,各位取反末位减末位减1末位加末位加1【X】反反码码【X】补码补码【X】反反码码当当X为负数时,为负数时,【例例2-25】求求【0】反反 习题习题设设 xx = 【+0.0000】反反【 0.0000】反反F同理,对于整数同理,对于整数F对于小数对于小数【+0】反反= 0,0000【 0】反反= 1,1111+0和和-0是两个不同的数是两个不同的数人才是培养出

27、来的人才是培养出来的【例例2-26】设机器数字长为设机器数字长为 8 位(其中一位为符号位)对于整数,位(其中一位为符号位)对于整数, 当其分别代表无符号数、原码、补码和反码时,对应的真值范围当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?各为多少?习题习题二进制代码二进制代码 无符号数无符号数对应的真值对应的真值原码对应原码对应 的真值的真值补码对应补码对应 的真值的真值反码对应反码对应 的真值的真值0000000000000001000000100111111110000000100000011111110111111110111111111281290121272532

28、54255-1-125-126-127+0+1+2+127-127+0+1+2+127-128-3-2-1+0-127-126-2-1-0+0+1+2+127不相同不相同相同相同0人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-移码移码公式公式-定点整数定点整数x 为真值为真值x移移 = 2n + x(2nx 2n)n 为为 整数的位数整数的位数x移移为机器数的移码表示为机器数的移码表示其中其中移码主要是针对整数的;移码主要是针对整数的;小数一般无移码形式。小数一般无移码形式。提示提示移码在数轴上的表示移码在数轴上的表示x移码移码2n+112n2n 12n00真值真值

29、由于移码在编码中只是加上了一个常数,并没有改变数据之间原本的由于移码在编码中只是加上了一个常数,并没有改变数据之间原本的 大小顺序,所以移码主要用于需要对数据进行大小比较的场合。大小顺序,所以移码主要用于需要对数据进行大小比较的场合。人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-移码移码x = 10100 x移移 = 25 + 10100用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开x = 10100 x移移 = 25 10100= 1,10100= 0,01100举例举例【例例2-27】X = 0101011B,Y = 0101011B,求求【X】移移

30、和和【X】移移 习题习题X移移 = 27 +X=10000000B + 0101011B= 10101011B;Y移移 = 27 +Y=10000000B + (0101011B)= 01010101B;比较其大小,比较其大小,10101011B01010101B,所以所以XY。人才是培养出来的人才是培养出来的习题习题2. 1. 1 定点数的表示定点数的表示-移码移码【例例2-28】X = +0000000B, Y = 0000000B,则,则X移移 = 27 +X=10000000B + 0000000B=10000000B;Y移移 = 27 +Y=10000000B + (0000000B

31、)=10000000B;所以,所以,+0移移 = 0移移,在移码中零有唯一的编码。,在移码中零有唯一的编码。移码仅针对定点整数而言的,移码仅针对定点整数而言的,定点小数没有移码的定义定点小数没有移码的定义.移码和补码的比较移码和补码的比较设设 x = 1100100 x移移 = 27 1100100 x补补 = 1,0011100= 0,001110001移码移码补码补码将最高的符号位取反将最高的符号位取反将最高的符号位取反将最高的符号位取反人才是培养出来的人才是培养出来的2. 1. 1 定点数的表示定点数的表示-移码移码移码的特点移码的特点【+0】=【-0】 当当 n = 5 时,最小的真值

32、为时,最小的真值为 25= 100000,此时,此时, 100000移移= 25100000= 000000可见,可见,最小真值的移码为全最小真值的移码为全 0用移码表示浮点数的阶码,用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小能方便地判断浮点数的阶码大小人才是培养出来的人才是培养出来的【例例2-29】真值、补码和移码的对照表】真值、补码和移码的对照表习题习题真值真值 x ( n = 5 )x补补x移移x 移移对应的对应的十进制整数十进制整数- 1 0 0 0 0 0- 1 1 1 1 1- 1 1 1 1 0- 0 0 0 0 1 0 0 0 0 0+ 0 0 0 0 1+ 0 0

33、0 1 0+ 1 1 1 1 0+ 1 1 1 1 10123132333462630 0 0 0 0 00 0 0 0 1 00 0 0 0 0 10 1 1 1 1 11 0 0 0 0 01 0 0 0 0 11 0 0 0 1 01 1 1 1 1 01 1 1 1 1 10 1 1 1 1 10 1 1 1 1 00 0 0 0 1 00 0 0 0 0 10 0 0 0 0 01 1 1 1 1 11 0 0 0 1 01 0 0 0 0 11 0 0 0 0 0- 1 0 0 0 0 0 0 0 0 0 0+ 1 1 1 1 10 0 0 0 0 01 1 1 1 1 10 0

34、0 0 0 01 0 0 0 0 0大小不清楚大小不清楚大小很清楚大小很清楚对对应应人才是培养出来的人才是培养出来的在计算机中,小数点不用专门的器件表示,而是按约定方式标出。在计算机中,小数点不用专门的器件表示,而是按约定方式标出。一、定点表示(小数点固定在某一个位置)一、定点表示(小数点固定在某一个位置)Sf S1S2 Sn数符数符数值部分数值部分小数点位置小数点位置Sf S1S2 Sn数符数符数值部分数值部分小数点位置小数点位置或或定点机定点机小数定点机小数定点机整数定点机整数定点机原码原码(1 2-n) +(1 2-n)(2n 1) +( 2n 1)补码补码 1 +(1 2-n) 2n

35、+( 2n 1)反码反码(1 2-n) +(1 2-n)(2n 1) +( 2n 1)常识常识人才是培养出来的人才是培养出来的计算机只能识别定点数。浮点数怎样处理呢?计算机只能识别定点数。浮点数怎样处理呢?思考思考借助于数学中的借助于数学中的“科学记数法科学记数法”,把浮点数转化成定点数。,把浮点数转化成定点数。2. 1. 2 浮点数的表示浮点数的表示 一个浮点数一个浮点数N将被表示成:将被表示成:N = M RE 。M 称为称为尾数尾数(Mantissa),是一个,是一个带小数点的实数;带小数点的实数;R称为称为基值基值(Radix),是一个常整数;,是一个常整数;用定点小数表示用定点小数表

36、示一般取一般取2,也可取,也可取8或或16E称为称为阶码阶码(Exponent) ,是一个整数。,是一个整数。表示表示人才是培养出来的人才是培养出来的2. 1. 2 浮点数的表示浮点数的表示浮点数的编码格式:浮点数的编码格式:尾数尾数n+1位,位,阶码阶码M+1位位尾数尾数越长,表示的精度越高;越长,表示的精度越高; 阶码阶码越长,表示的范围越高。越长,表示的范围越高。显然,显然,在固定长度的浮点数格式内,在固定长度的浮点数格式内,这两者是一对矛盾!这两者是一对矛盾!为了利用尾数所占的二进制数位来表示最多的有效数字,浮点数一般采用为了利用尾数所占的二进制数位来表示最多的有效数字,浮点数一般采用

37、 “规格化形式规格化形式”。规格化表示规格化表示人才是培养出来的人才是培养出来的尾数的小数点每向左尾数的小数点每向左/向右移动向右移动1位,就应该给阶码加位,就应该给阶码加1或减或减1,以保证浮点数数值不变。以保证浮点数数值不变。2. 1. 2 浮点数的表示浮点数的表示F通过通过移动尾数小数点的位置移动尾数小数点的位置,可将不规格化浮点数转化成,可将不规格化浮点数转化成“规格化规格化” 浮点数。浮点数。规格化表示规格化表示规格化方法规格化方法F在计算机中,小数点的位置是固定的,所以只能移动尾数。在计算机中,小数点的位置是固定的,所以只能移动尾数。F“规格化规格化”在计算机内部的操作是,尾数每向

38、左在计算机内部的操作是,尾数每向左/向右移动向右移动1位,位, 阶码就减阶码就减1/加加1。 人才是培养出来的人才是培养出来的2. 1. 2 浮点数的表示浮点数的表示下溢下溢在规格化过程中,当在规格化过程中,当浮点数阶码小于最小阶码浮点数阶码小于最小阶码时,称发生时,称发生“下溢下溢”。这时阶码(采用移码表示)为全这时阶码(采用移码表示)为全0,又由于发生,又由于发生“下溢下溢”的浮点数的绝对值的浮点数的绝对值 很小,所以机器强制把尾数置成全很小,所以机器强制把尾数置成全0,这样整个浮点数的所有数位就都是,这样整个浮点数的所有数位就都是 0,便于实现,便于实现“判断一个数是否为零判断一个数是否

39、为零”。这样得到的浮点数零称为这样得到的浮点数零称为机器零机器零。机器零是一个特殊的合法的浮点数编。机器零是一个特殊的合法的浮点数编 码,尽管它不符合规格化表示的要求。码,尽管它不符合规格化表示的要求。 一个浮点数一个浮点数 N 将被表示成:将被表示成:N = M RE 。N = 000000000000人才是培养出来的人才是培养出来的N = M R(1111111+1=0000000) 一个浮点数一个浮点数 N 将被表示成:将被表示成:N = M RE 。2. 1. 2 浮点数的表示浮点数的表示上溢上溢同样地,在规格化过程中,浮点数的阶码还会出现同样地,在规格化过程中,浮点数的阶码还会出现“

40、大于最大阶码大于最大阶码” 的现象,即全的现象,即全1的阶码(采用移码表示)在加的阶码(采用移码表示)在加1后变成了全后变成了全0,计算计算 结果的绝对值超出了定长浮点数所能表示的最大绝对值结果的绝对值超出了定长浮点数所能表示的最大绝对值,这种现象,这种现象 称为称为“上溢上溢”。这时,机器将停止运算,进行溢出处理。这时,机器将停止运算,进行溢出处理。 可见,浮点数的溢出(下溢可见,浮点数的溢出(下溢/ /上溢)是由上溢)是由阶码溢出阶码溢出导致的。导致的。人才是培养出来的人才是培养出来的2( 2m1)( 1 2n)2( 2m1)2n2( 2m1)( 1 2n)2( 2m1)2n最小负数最小负

41、数最大负数最大负数最大正数最大正数最小正数最小正数负数区负数区正数区正数区下溢下溢0上溢上溢上溢上溢215 ( 1 2-10) 2-15 2-10 2-15 2-10 215 ( 1 2-10) 设设 m = 4 n =10浮点数的表示范围浮点数的表示范围上溢上溢 阶码阶码 最大阶玛最大阶玛下溢下溢 阶码阶码 最小阶码最小阶码 按按 机器零机器零 处理处理人才是培养出来的人才是培养出来的【2-29】写出对应下图所示的浮点数的补码形式。设写出对应下图所示的浮点数的补码形式。设 n = 10,m = 4, 阶符、数符各取阶符、数符各取 1位位解:解:215(1 210)0,1111; 0.1111

42、111111215 2101,0001; 0.0000000001215 2101,0001; 1.1111111111 215(1 210)0,1111; 1.0000000001最大正数最大正数最小正数最小正数最大负数最大负数最小负数最小负数类型类型真值真值补码补码负数区负数区正数区正数区下溢下溢0上溢上溢上溢上溢最小负数最小负数最大正数最大正数最小正数最小正数最大负数最大负数2( 2m1)( 1 2n)2( 2m1)(1 2n)2( 2m1)2n2( 2m1)2n习题习题人才是培养出来的人才是培养出来的解:解:设设X= 26 = 11010B,采用科学计数法表示成采用科学计数法表示成 2

43、0101B,所以,所以, X原原 =1,000000000011010 X补补 =按照规格化浮点数的编码格式,按照规格化浮点数的编码格式,X表示为表示为 X原原 =0, 0101; X补补 =0, 0101;【2-30】设机器字长为设机器字长为16,请将,请将26分别表示成二进制定点数和分别表示成二进制定点数和规格化的浮点数。其中浮点数的阶码占规格化的浮点数。其中浮点数的阶码占5位位(含一位阶符含一位阶符),尾数占,尾数占11位位(含一位数符含一位数符)。习题习题人才是培养出来的人才是培养出来的习题习题【2-31】设机器请写出设机器请写出53/512对应的尾数,分别用原码和补码表示对应的尾数,

44、分别用原码和补码表示 的规格化浮点数的规格化浮点数(设浮点数格式同上例,阶码用移码表示设浮点数格式同上例,阶码用移码表示)。解解: 53/512 = 0.000110101B= (0.110101B) 211B 原码表示尾数原码表示尾数: 1. 1101010000;补码表示尾数补码表示尾数: 1. 0010110000;原码表示阶码原码表示阶码: 1, 0011;补码表示阶码补码表示阶码: 1, 1101;移码表示阶码移码表示阶码: 0, 1101。原码尾数的规格化浮点数原码尾数的规格化浮点数: 0, 1101;1. 1101010000;补码尾数的规格化浮点数补码尾数的规格化浮点数: 0,

45、 1101;1. 0010110000。人才是培养出来的人才是培养出来的威廉威廉卡亨卡亨浮点计算的先驱;浮点运算浮点计算的先驱;浮点运算IEE标准标准IEEE 754, IEEE 854的主要设计师。的主要设计师。为了便于软件的移植和对软件中浮点数运算发生特殊情况时进行处理,为了便于软件的移植和对软件中浮点数运算发生特殊情况时进行处理, 并鼓励开发面向数值计算的优秀程序,并鼓励开发面向数值计算的优秀程序,IEEE于于1985年推出了:年推出了: “浮点数表示及运算标准浮点数表示及运算标准”,即,即IEEE标准标准 754。 目前几乎所有的微处理器都采用这一标准。目前几乎所有的微处理器都采用这一

46、标准。 由于该标准的成功,它的设计者威廉由于该标准的成功,它的设计者威廉卡亨因此荣获卡亨因此荣获1989年年“图灵奖图灵奖”。人才是培养出来的人才是培养出来的IEEE 754 标准标准采用浮点数表示形式的计算机中,浮点数一般有规定的格式标准。采用浮点数表示形式的计算机中,浮点数一般有规定的格式标准。了解了解龙芯系列龙芯系列CPU采用此标准采用此标准常识常识S 阶码(含阶符)阶码(含阶符) 尾尾 数数数符数符小数点位置小数点位置IEEE 754标准标准符号位:符号位:浮点数的正负浮点数的正负 阶码用阶码用移码移码表示表示 阶码的真值被固定阶码的真值被固定 加加上一个上一个常数常数尾数采用规格化形

47、式:尾数采用规格化形式:即即非非“0”的有效位最高位总是的有效位最高位总是“1”人才是培养出来的人才是培养出来的S 阶码(含阶符)阶码(含阶符) 尾尾 数数数符数符小数点位置小数点位置依依据据IEEE标准,浮点数有三种类型,如下:标准,浮点数有三种类型,如下:短实数短实数1 8 23 32长实数长实数1 11 52 64临时实数临时实数1 15 64 80符号位符号位 S 阶码阶码 尾数尾数 总位数总位数IEEE 754标准标准IEEE 754 标准标准了解了解人才是培养出来的人才是培养出来的2. 2. 1 逻辑运算逻辑运算逻辑运算逻辑运算的特点是按位进行,每一位运算后得到一个独立的结果,对其

48、他位的特点是按位进行,每一位运算后得到一个独立的结果,对其他位 没有影响。因此,逻辑运算不存在进位、借位、溢出等问题。没有影响。因此,逻辑运算不存在进位、借位、溢出等问题。常见的常见的逻辑运算逻辑运算有:有: 逻辑非逻辑非(NOT)、 逻辑加逻辑加(OR)、 逻辑乘逻辑乘(AND)和和 逻辑异或逻辑异或(XOR).人才是培养出来的人才是培养出来的逻辑加,也称逻辑加,也称“按位求逻辑或按位求逻辑或”运算,它的运算符是运算,它的运算符是“OR”或或“”。其运。其运算规则是:算规则是: 11=1,10=1,01=1,00=0。 例如,例如,X=0101 0101B,Y = 1110 0010B。 X

49、 OR Y =1111 0111B。 实现实现“逻辑加逻辑加”的电路叫做的电路叫做“或门或门”,如下图所示,如下图所示2. 2. 1 逻辑运算逻辑运算1、逻辑非、逻辑非逻辑非逻辑非, 也叫也叫“按位取反按位取反”或或“按位求非按位求非” ,就是对数据的每一位取反,就是对数据的每一位取反, 将将1变成变成0,0变成变成1。 例如,例如,X=0101 0101B,NOT X = 1010 1010B 实现实现“逻辑非逻辑非”的电路叫做的电路叫做“非门非门”,如下图所示。,如下图所示。(a)非门)非门2、逻辑加、逻辑加(b)或门)或门人才是培养出来的人才是培养出来的逻辑乘逻辑乘,也称,也称“按位求逻

50、辑与按位求逻辑与”运算,它的运算符是运算,它的运算符是“AND”或或“ ”。 其运算规则是:其运算规则是:1 1=1,1 0=0,0 1=0,0 0=0。 例如,例如, X=0101 0101B,Y = 1110 0010B。 X AND Y =01000000B。 实现实现“逻辑乘逻辑乘”电路叫做电路叫做“与门与门” ,如下图所示,如下图所示3、逻辑乘、逻辑乘(c)与门)与门4、逻辑异或、逻辑异或“逻辑异或逻辑异或”的运算符是的运算符是“XOR”或者或者“ ”。其运算规则是:当两。其运算规则是:当两个操作数相异时,结果为个操作数相异时,结果为“真真(1)”,否则为,否则为“假假(0)”,即,

51、即1 1=0,1 0=1,0 1=1,0 0=0。这个运算规则与忽略进位的。这个运算规则与忽略进位的“二进制加二进制加法法”相同,所以相同,所以“逻辑异或逻辑异或”也称也称“按位加按位加” 。 例如,例如,X=0101 0101B,Y = 1110 0010B。 X XOR Y =10110111B。 实现实现“逻辑异或逻辑异或”的电路叫做的电路叫做“异或门异或门”, 如右图所示如右图所示.(d)异或门)异或门人才是培养出来的人才是培养出来的2. 2. 2 移位运算移位运算1. 概述概述移位运算,也称移位操作,是指移位运算,也称移位操作,是指在小数点位置固定不变的情况下在小数点位置固定不变的情

52、况下, 将一个二进制数左移或右移将一个二进制数左移或右移n位。位。对于一个定点数,将其左移对于一个定点数,将其左移n位,相当于该数乘以位,相当于该数乘以2n; 将其右移将其右移n位,相当于该数除以位,相当于该数除以2n。思考思考计算机总是用定长的二进制位来表示一个数据。计算机总是用定长的二进制位来表示一个数据。 当数据左移或右移当数据左移或右移n位后,必然会使其低位后,必然会使其低n位或高位或高n位出现空位。位出现空位。 那么,对于空出来的数位应该填补那么,对于空出来的数位应该填补0还是填补还是填补1呢?呢?这与机器数被当作有符号数还是无符号数有关。这与机器数被当作有符号数还是无符号数有关。

53、有符号数的移位有符号数的移位称为称为算术移位算术移位, 无符号数的移位无符号数的移位称为称为逻辑移位逻辑移位。人才是培养出来的人才是培养出来的2. 2. 2 移位运算移位运算2. 算术移位规则算术移位规则1右移右移 添添 1左移左移 添添 000反反 码码补补 码码原原 码码负数负数原码、补码、反码原码、补码、反码正数正数添补代码添补代码码码 制制总原则:符号位不变总原则:符号位不变人才是培养出来的人才是培养出来的机器数为机器数为正正【x】原原【x】反反【x】补补 真值真值 真值真值 真值真值移位后出现的空位填补移位后出现的空位填补“0”,符号位不变。,符号位不变。2. 2. 2 移位运算移位

54、运算2. 算术移位规则解释算术移位规则解释当机器数为正时:当机器数为正时:当机器数为负时当机器数为负时原码:符号位除外,其数值位与真值原码:符号位除外,其数值位与真值相同相同,移位后,移位后 出现的空位添出现的空位添“0”。反码:符号位除外,其数值位与真值反码:符号位除外,其数值位与真值相反相反,移位后,移位后 出现的空位添出现的空位添“1”。补码:补码:左移时添左移时添“0”。右移时添右移时添“1”。机器数为机器数为负负人才是培养出来的人才是培养出来的2. 2. 2 移位运算移位运算习题习题【2-32】设机器数字长为设机器数字长为 8 位(含一位符号位),写出位(含一位符号位),写出A =

55、+18时,三种机器数左、右移一位和两位后的表示形式及对应的时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。真值,并分析结果的正确性。解:解:则则 A原原 = A补补 = A反反 = 0,0010010A = +18 = +10010B +40,0000100 +90,0001001+720,1101000 +360,0110100 +180,0010010移位前移位前A原原=A补补=A反反对应的真值对应的真值机机 器器 数数移位操作移位操作1212人才是培养出来的人才是培养出来的2. 2. 2 移位运算移位运算习题习题【2-33】设机器数字长为设机器数字长为 8

56、位(含一位符号位),写出位(含一位符号位),写出A = 18时,三种机器数左、右移一位和两位后的表示形式及对应的时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。真值,并分析结果的正确性。解:解:A = 18 = 10010B 41,0000100 91,0001001 721,1001000 361,0100100 181,0010010移位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212原码原码人才是培养出来的人才是培养出来的 41,1111011 91,1110110 721,0110111 361,1011011 181,1101101移

57、位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212 51,1111011 91,1110111 721,0111000 361,1011100 181,1101110移位前移位前对应的真值对应的真值机机 器器 数数移位操作移位操作1212补码补码反码反码人才是培养出来的人才是培养出来的设机器数字长为设机器数字长为 8 位(含一位符号位),写出位(含一位符号位),写出A = +26时,时,三种机器数左、右移一位和两位后的表示形式及对应的三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。真值,并分析结果的正确性。课后课后练习练习 + 6正确正确 +13+

58、104 + 52 +26解:解:A = +26则则 A原原 = A补补 = A反反 = 0,0011010= +11010 0,00001100,00011010,11010000,01101000,0011010移位前移位前A原原=A补补=A反反对应的真值对应的真值机机 器器 数数移位操作移位操作1212影响影响精度精度人才是培养出来的人才是培养出来的课后课后练习练习设设机器数字长为机器数字长为 8 位(含一位符号位),写出位(含一位符号位),写出A = 43时时的原码、补码、反码及三种机器数左、右移一位和两位后的的原码、补码、反码及三种机器数左、右移一位和两位后的表示形式及对应的真值,并分

59、析结果的正确性。表示形式及对应的真值,并分析结果的正确性。【A】原原【A】补补【A】反反A真值真值1010111,01010111,10101011,1010100解:解:移位操作移位操作机器数机器数对应真值对应真值左移左移1位位左移左移2位位右移右移1位位移位前移位前右移右移2位位1,0101011431,1010110861,0010101211,010110044101,0001010正确正确错误错误影响影响精度精度原码原码人才是培养出来的人才是培养出来的补码补码反码反码移位操作移位操作机器数机器数对应真值对应真值左移左移1位位左移左移2位位右移右移1位位移位前移位前右移右移2位位1,1

60、010101431,0101010861,1010100441,1101010221,111010111正确正确错误错误影响影响精度精度移位操作移位操作机器数机器数对应真值对应真值左移左移1位位左移左移2位位右移右移1位位移位前移位前右移右移2位位1,1010100431,0101001861,1010011441,1101010211,111010110正确正确错误错误影响影响精度精度人才是培养出来的人才是培养出来的2. 2. 2 移位运算移位运算3. 逻辑移位逻辑移位 逻辑移位处理的是逻辑移位处理的是无符号数无符号数,所以它的基本规则是:,所以它的基本规则是: 无论左移还是右移,移出的空位

温馨提示

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

评论

0/150

提交评论