计算机组成原理:浮点数表示及运算

合集下载

计算机组成原理定点数浮点数等运算方法复习

计算机组成原理定点数浮点数等运算方法复习

3
记作 3 ≡ + 9 (mod 12) 同理 4 ≡ + 8 (mod 12)
时钟以 12为模
5 ≡ + 7 (mod 12)
结论 一个负数加上 “模” 即得该负数的补数
一个正数和一个负数互为补数时
它们绝对值之和即为 模 数
• 计数器(模 16) 1011
1011 – 1011
0000
0000 ?
[x]补 = 27+1 +( 1011000 ) = 100000000 1011000
1,0101000
小数
[x]补 =
x 2+x
1>x ≥0 0 > x ≥ 1(mod 2)
x 为真值 如 x = + 0.1110
x = 0.1100000
[x]补 = 0.1110
[x]补 = 2 + ( 0.1100000 ) = 10.0000000
5. 移码表示法
补码表示很难直接判断其真值大小
如 十进制
二进制
补码
x = +21 x = –21
+10101 – 10101
0,10101 错 1,01011 大
x = +31
+11111
0,11111 错
x = –31
– 11111
1,00001 大
x + 25
+10101 + 100000 = 110101

加法 正 负

加法 负 正

加法 负 负

正 可正可负 可正可负

能否 只作加法 ?
找到一个与负数等价的正数 来代替这个负数 就可使 减 加

计算机组成原理 [袁春风]chap3_4

计算机组成原理 [袁春风]chap3_4
3.6 浮点运算
浮点数运算及结果 浮点数的加减运算 浮点数的乘除运算 精度考虑 IEEE754中几个特殊值的含义 浮点运算部件的设置
1
南京大学计算机系 多媒体技术研究所 袁春风
3.6.1 浮点数运算及结果
设两个规格化浮点数分别为 A=Ma . 2Ea B=Mb.2Eb ,则 A+B =[Ma + Mb.2 -(Ea-Eb)]. 2Ea (假设Ea>=Eb ) A*B =(Ma * Mb).2 Ea+Eb A/B =(Ma / Mb).2 Ea-Eb 上述运算结果可能出现以下几种情况
24
南京大学计算机系 多媒体技术研究所 袁春风
一位十进制加法器
S3 S2 S1 S0
+
+
+
C4 S3* C4* + A3 B3
25
S2* +
SБайду номын сангаас* +
S0* +
A2 B2
A1 B1
A0 B0
南京大学计算机系 多媒体技术研究所 袁春风
n位十进制加法器
n个一位十进制加法器= 一个n位十进制串行加法器
13
南京大学计算机系 多媒体技术研究所 袁春风
14
南京大学计算机系 多媒体技术研究所 袁春风
IEEE754的舍入方式
r=0
r=1 U+1
0
U
U+0.5
15
强迫为 偶数
南京大学计算机系 多媒体技术研究所 袁春风
IEEE754的舍入方式
r=1 U-1
r=0 U
U-0.5
16
0
南京大学计算机系 多媒体技术研究所 袁春风

2022考研408计算机组成原理知识:浮点数的表示和运算

2022考研408计算机组成原理知识:浮点数的表示和运算

计算机组成原理在408计算机综合考试中所占分值45分,说明是必考的重点内容,考生要在这部分多花时间复习。

以下是整理的的计算机组成原理知识,希望大家认真看。

2022考研408计算机组成原理知识:浮点数的表示和运算1. 浮点数的表示1)浮点数的表示范围;浮点数是指小数点位置可浮动的数据,通常以下式表示:N=M·RE其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。

在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。

因此,浮点数的机内表示一般采用以下形式:浮点数的机内表示一般采用以下形式:Ms是尾数的符号位,设置在最高位上。

E为阶码,有n+1位,一般为整数,其中有一位符号位,设置在E的最高位上,用来表正阶或负阶。

M为尾数,有m位,由Ms和M组成一个定点小数。

Ms=0,表示正号,Ms=1,表示负。

为了保证数据精度属数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于(0.5)10。

对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。

2)IEEE754标准根据IEEE 754国际标准,常用的浮点数有两种格式:(1)单精度浮点数(32位),阶码8位,尾数24位(内含:位符号位)。

(2)双精度浮点数(64位),阶码11位,尾数53位(内含:位符号位)。

单精度格式32位,阶码为8位,尾数为23位。

另有一位符号位S,处在最高位。

由于IEEE754标准约定在小数点左部有一位隐含位,从而实际有效位数为24位。

这样使得尾数的有效值变为1.M 。

例如,最小为x1.0…0,,最大为x1.1…1。

规格化表示。

故小数点左边的位横为1,可省去。

阶码部分采用移码表示,移码值127,1到254经移码为-126到+127。

S(1E(8M(23N(符号位符号位不等于(-1)S·2-126·(0.M)符号位1-(-1)S·2E-127·(1.M)符号位255不等于NaN(符号位255无穷大0 有了精确的表示,无穷大也明确表示。

计算机组成原理与系统结构试验一 数据表示与运算

计算机组成原理与系统结构试验一 数据表示与运算

《计算机组成原理与系统结构》实验一数据表示和运算(1)无符号数和带符号整数的表示实验目的:通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。

实验要求:验证教材表2.2(P.28)中的关系表达式的结果,并编程得出第二章习题8(P.69)的表中结果。

实验报告:1.给出源程序(文本文件)和执行结果。

图1-1 验证教材表2.2(P.28)中的关系表达式的结果测试代码图1-2 验证教材表2.2(P.28)中的关系表达式的结果测试代码运行结果图1-3 解第二章习题8(P.69) 实验代码图1-4 第二章习题8(P.69)实验代码运行结果由上图结果得解答如下表:表1-1第二章习题8解答结果2.根据实验结果,回答下列问题。

(1)你的机器字长多少位?int型数据的位数、最小值和最大值各是多少?答:我的机器字长为32位;int型数据为32位,min = -2147483648(-231),max = 2147483647(231-1) □(注:“□”符号表示一题解答结束,以下同此约定)(2)在你的机器上,-1用int类型和unsiged int类型表示的结果分别是多少?答:结果分别为-1和429 496 729 5(232-1). □(2)类型转换和移位操作运算实验目的:了解高级语言中数据类型的转换和移位操作结果,从而能更好地理解指令系统设计和计算机硬件设计所需满足的要求和需要考虑的问题。

实验要求:编程实现以下各种操作,并要求分别用十进制和十六进制形式打印输出操作结果。

(1)给定一个short型数据-12345,分别转换为int、unsigned short、unsigned int、float类型的数据;图1-5 short型数据-12345转换成其他类型测试代码图1-6 short型数据-12345转换成其他类型测试代码运行结果(2)给定一个int型数据2147483647,分别转换为short、unsigned short、unsigned int、float 类型的数据;图1-7 int型数据2147483647转换成其他类型测试代码图1-8 int型数据2147483647转换成其他类型测试代码(3)给定一个float型数据123456.789e5,转换成double型数据;图1-9 float型数据123456.789e5,转换成double型数据图1-10 float型数据123456.789e5,转换成double型数据运行结果(4)给定一个double型数据123456.789e5,转换成float型数据;图1-11 double型数据123456.789e5,转换成float型数据图1-12 double型数据123456.789e5,转换成float型数据运行结果(5)按short和unsigned short类型分别对-12345进行左移2位和右移2位操作。

浮点数表示及运算

浮点数表示及运算

计算机组成原理
15
完成浮点加减运算的操作过程大体分为: (1) 0 操作数的检查;
(2) 比较阶码大小并完成对阶; (3) 尾数进行加或减运算; (4) 结果规格化。 (5) 舍入处理。 (6) 溢出处理。
计算机组成原理
16
(1) 0 操作数检查 (2) 对阶
使二数阶码相同(即小数点位置对齐),这个过程叫作对阶。 • 先求两数阶码 Ex 和 Ey之差,即△E = Ex-Ey 若△E = 0,表示 Ex=Ey 若△E > 0, Ex>Ey 若△E < 0, Ex<Ey 通过尾数的移动来改变Ex或Ey,使其相等。
19
(4) 结果规格化 求和之后得到的数可能不是规格化了的数, 为了增加有效数 字的位数, 提高运算精度,必须将求和的结果规格化。 ①规格化的定义:
采用原码: 正数: S=0.1 ×××…× 负数: S=1.1 ×××…× 采用双符号位的补码:
对正数: 对负数:
1 S 1 2
(二进制)
S=00.1×××…× S=11.0×××…×
格式 单精度 最小值 Emin=1, M=0, 1-127 -126 1.0×2 =2 最大值 Emax=254, 254-127 f=1.1111…, 1.111…1×2 127 -23 = 2 ×(2-2 ) Emax=2046, 2046-1023 f=1.1111…,1.111…1×2 1023 -52 =2 ×(2-2 )
8位定点小数可表示的范围


0.0000001 --- 0.1111111 1/128 --- 127/128 可表示2-11*0.0001 --- 211*0.1111

设阶码2位,尾数4位

《计算机组成原理》课后习题答案

《计算机组成原理》课后习题答案

第1章计算机组成原理考试大纲第一章计算机体系结构和计算机组成冯。

诺伊曼体系的特点Amdahl定律第二章数制和数制转换各种码制的表示和转换浮点数的表示补码加减法布思算法浮点数的加减法海明码的计算练习:5,6,7,8,101、已知X=19,Y=35,用布思算法计算X×Y和X×(-Y)。

2、使用IEEE 754标准格式表示下列浮点数:-5,-1.5,1/16,-6,384,-1/32。

3、已知X=-0.1000101×2-111,Y=0.0001010×2-100。

试计算X+Y,X-Y,X×Y和X/Y。

4、某浮点数字长12位,其中阶符1位,阶码数值3位,尾符1位,尾数数值7位,阶码和尾数均用补码表示。

它所能表示的最大正数是多少?最小规格化正数是多少?绝对值最大的负数是多少?5、求有效信息位为01101110的海明码校验码。

第三章练习:5解释下列概念:PROM,EPROM,E2PROM,Flash memory,FPGA,SRAM和DRAM。

第四章总线的分类总线操作周期的四个传输阶段总线仲裁的概念及其分类异步通信方式的种类总线的最大传输率第五章存储器的分类存储容量的扩展RAID的概念、特点以及分类Cache的地址映射Cache的写策略Cache的性能分析3C练习:4,5,71.一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?用下列存储芯片时,各需要多少片?1K×4位,2K×8位,4K×4位,16K×l位,4K×8位,8K×8位2.现有1024×l的存储芯片,若用它组成容量为16K×8的存储器。

(1)实现该存储器所需的芯片数量?(2)若将这些芯片分装在若干块板上,每块板的容量为4K×8,该存储器所需的地址线总数是多少?几位用于选片?几位用作片内地址?(3)画出各芯片的连接逻辑图。

计算机组成原理第12-浮点数的运算2

计算机组成原理第12-浮点数的运算2
Tk=k+(n-1) 其中k个时钟周期用于处理第一个任务。k个周期后,流水线被装满,剩余的n-1个 任务只需n-1个周期就完成了。 用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为 TL=n·k 将TL和Tk的比值定义为k级线性流水线的加速比:
CK=TL/TK=(n·k)/(k+(n-1)) 当 n>>k 时, Ck->k 。这就是说,理论上k级线性流水线处理几乎 可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能 达到。
[解:] (1)加法器的流水线时钟周期至少为 τ=90ns+10ns=100ns
如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为 τ1+τ2+τ3+τ4 =300ns
因此,4级流水线加法器的加速比为 Ck=300/100=3
(2) 当每个过程段的时间都是75ns时,加速比为 Ck=300/75=4
[例30] 已知计算一维向量x,y的求和表达式如下:



56
65
20.5
14.6
0
336
121 35.1 336
114.3 + 7.2 = 121.5
69.6
72.8
142.4
3.14
1.41
4.55
试用4段的浮点加法流水线来实现一维向量的求和运算,这4段流水线是阶码比较、 对阶操作、尾数相加、规格化。只要求画出向量加法计算流水时空图。
2.CPU之内的浮点运算器
奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。
指令执行过程分为8段流水线。前4 段为指令预取(DF)、指令译码(D1)、地址生 成(D2)、取操作数(EX),在U、V流水线中完成;后4段为执行1(X1)、执行2(X2) 、结果写回寄存器堆(WF)、错误报告(ER),在浮点运算器中完成。一般情况下 ,由U流水线完成一条浮点数操作指令。

浮点数的表示和计算

浮点数的表示和计算

浮点数的表示和计算(共9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《计算机组成原理》实验报告12345srloop: bge $t0, 8, dex16end #16addi $t0, $t0, 1srl $t1, $s2, 28sll $s2, $s2, 4bgt $t1, 9, outcharli $v0, 1add $a0, $t1, $zerosyscallj srloopoutchar: addi $t1, $t1, 55 # change to charli $v0, 11add $a0, $t1, $zerosyscallj srloopdex16end:la $a0, msg0 # new lineli $v0, 4syscalllw $ra, 20($sp)lw $fp, 16($sp)addiu $sp, $sp, 32jr $ra四、实验结果及分析和(或)源程序调试过程1. 实验结果:本次实验我们以十进制实数形式的输入两个浮点数,在内存中以IEEE 754单精度方式表示,执行运算操作后,以十进制形式把结果输出,并且可以以二进制和十六进制的方式显示输出,下图是执行加法运算,并输出二进制形式:6下图是执行乘法操作,并输出十六进制形式:减法运算如下图:除法运算如下图:当输入错误,如除数为0时,会显示错误信息并退出,如下图:7备注:1、教师在布置需撰写实验报告的实验前,应先将报告书上的“实验题目”、“实验性质”、“实验目的”、“实验项目内容”等项目填写完成,然后再下发给学生。

2、教师在布置需撰写报告的实验项目时,应告知学生提交实验报告的最后期限。

3、学生应按照要求正确地撰写实验报告:1)在实验报告上正确地填写“实验时间”、“实验地点”等栏目。

2)将实验所涉及的源程序文件内容(实验操作步骤或者算法)填写在“实验过程或算法(源程序)”栏目中。

计算机组成原理教案(第二章)

计算机组成原理教案(第二章)

最小负数值=-(215-1)10=(-32767)10
1
111 111 111 111 111
例6]假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格 化浮点数x,真值表示为: x=(-1)s×(1.M)×2E-128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负 数是多少? 1)最大正数 0 11 111 111 111 111 111 111 111 111 111 11
2.1.1 数据格式
计算机中常用的数据表示格式有两种
一是定点格式,数值范围有限,要求但的处理硬件比较简单。
二是浮点格式,数值范围很大,但要求硬件比较复杂。
1.定点数的表示方法
定点表示:约定机器中所有数据的小数点位置是固定不变的
(x0:符号位,0代表正号,1代表负号):
纯小数和纯整数
目前计算机中多采用定点纯整数表示,因此将定点数表示的运算 简称为整数运算。
00000001 0000000011
(2).压缩的十进制数串形式
每个数位占用半个字节(即4个二进制位),其值可用二-十编码 (BCD码)或数字符的ASCII码的低4位表示。 符号位也占半个字节并放在最低数字位之后,其值选用四位编 码中的六种冗余状态中的有关值,
1 2 3 C
(+123) 0 1 2 D
2.浮点数的表示方法
浮点表示法:把一个数的有效数字和数的范围在计算机的一个 存储单元中分别予以表示,这种把数的范围和精度分别表示的 方法,数的小数点位置随比例因子的不同而在一定范围内自 由浮动。 9 × 10-28=0.9 × 10-27
N=Re.M M :尾数,是一个纯小数。
e :比例因子的指数,称为浮点数的指数,是一个整数。 R :比例因子的基数,对于二进计数值的机器是一个常数 ,一般规定R 为2,8或16。

计算机组成原理float小数的表示

计算机组成原理float小数的表示

计算机组成原理float小数的表示
在计算机组成原理中,单精度浮点数(float)通常采用IEEE 754标准进行
表示。

这种表示方法将一个浮点数分为三个部分:符号位、指数位和尾数位。

符号位:表示浮点数的正负,占1位。

指数位:表示浮点数的指数,占8位(对于单精度)或11位(对于双精度)。

尾数位:表示浮点数的小数部分,占23位(对于单精度)或52位(对于
双精度)。

在IEEE 754标准中,单精度浮点数的表示形式如下:
S EEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM
其中:
S:符号位,占1位。

0表示正数,1表示负数。

E:指数位,占8位。

表示为移码形式,即偏移了8位的二进制数。

M:尾数位,占23位。

表示浮点数的小数部分。

在将一个十进制数转换为IEEE 754单精度浮点数时,需要将十进制数的小数部分除以2并取整数部分作为尾数,然后根据指数和符号确定最终的二进制表示。

例如,将十进制数-转换为IEEE 754单精度浮点数的过程如下:
-可以表示为-6+(-4/2)+,其中-6是符号位(1),-4是偏移了8位的二进制数(-100),是尾数部分()。

所以,-的单精度浮点数表示为1 。

计算机组成原理第11-浮点数的运算1

计算机组成原理第11-浮点数的运算1

x±y=(Mx2Ex-Ey±My)2Ey, Ex<=Ey
12/31/2023
信 息 科 学 与 工 程 学 院1
两数首先均为规格化数,进行规格化浮点数的加减运 算需经过5步完成: (1)对阶操作:低阶向高阶补齐,使阶码相等。 (2)尾数运算:阶码对齐后直接对尾数运算。 (3)结果规格化:对运算结果进行规格化处理(使补码尾 数的最高位和尾数符号相反)。如溢出则需右规;如不是 规格化时应左规。 (4)舍入操作:丢失位进行0舍1入或恒置1处理。 (5)判断溢出:判断阶码是否溢出,下溢则将运算结果置 0(机器0),上溢则中断。
14 12/31/2023
信 息 科 学 与 工 程 学 1院4
第二章 运算方法和运算器
2、乘、除法运算步骤 浮点数的乘除运算大体分为以下几个步骤:
1> 0 操作数检查。 2> 阶码加/减操作。 3> 尾数乘/除操作。 4> 结果规格化 5> 舍入处理。
15 12/31/2023
信 息 科 学 与 工 程 学 1院5
18 12/31/2023
信 息 科 学 与 工 程 学 1院8
第二章 运算方法和运算器
当尾数用原码表示时,舍入规则比较简单。最简便的方法,是只要尾数的最低位 为1,或移出的几位中有为1的数值位,就是最低位的值为1。 另一种是0舍1入法,即当丢失的最高位的值为1时,把这个1加到最低数值位上进 行修正,否则舍去丢失的的各位的值。 当尾数是用补码表示时,所用的舍入规则,应该与用原码表示时产生相同的处理 效果。 具体规则是:
(4) 右规
当 尾数溢出( >1)时,需 右规 即尾数出现 01. ×× …×或 10. ×× …×时
尾数 1,阶码加 1
12/31/2023

计算机组成原理浮点数运算

计算机组成原理浮点数运算

计算机组成原理浮点数运算
在计算机组成原理中,浮点数的运算涉及到数值的表示、加减运算等多个方面。

以下是浮点数运算的基本过程:
1. 对阶:在进行浮点数运算时,需要先对参与运算的浮点数的阶码进行对齐,即比较两个阶码的大小,将阶码较小的数向右移动,使得两个数的阶码相等。

2. 尾数运算:对阶完成后,进行尾数的加减运算。

尾数通常使用补码表示,加减运算规则与定点数的补码加减运算规则相同。

3. 结果格式化:根据尾数运算结果的符号和数值大小,确定最终结果的格式。

如果尾数的结果为正,则结果的格式与源码相同;如果尾数的结果为负,则结果的格式与补码相同。

浮点数的范围和精度由阶码和尾数的位数决定。

阶码的位数能够决定数的范围,尾数的位数决定数的有效精度。

在实际应用中,需要根据具体需求选择合适的浮点数表示方式和运算方法。

计算机组成原理浮点数表示及运算

计算机组成原理浮点数表示及运算
指数e=阶码-127=10000010-01111111 =00000011=(3)10 包括隐藏位1的尾数: 1.M=1.011 0110 0000 0000 0000 000e
=+(1.011011)×23=+1011.011=(11.375)10
R :基数,对于二进计数值的机器是一个常数,一般规定R 为2,8或16
E0 E1 E2 … … … Em M0 M1 M2 … … … Mn
阶符
阶值
尾符 尾数值
计算机组成原理
2
一个机器浮点数由阶码和尾数及其符号位组成: 尾数:用定点小数表示,给出有效数字的位数,决定了浮点数的表示精度 阶码:用定点整数形式表示,指明小数点在数据中的位置,决定了浮点数 的表示范围。
Emin=1, Emax=254/2046
计算机组成原理
9
例:若浮点数 x 的二进制存储格式为(41360000)16,求其32位 浮点数的十进制值。
解: 0100,0001,0011,0110,0000,0000,0000,0000 数符:0 阶码:1000,0010 尾数:011,0110,0000,0000,0000,0000
计算机组成原理
13
IEEE754 规格化浮点数表示范围
格式
最小值
最大值
单精度
Emin=1, M=0, 1.0×21-127 = 2-126
Emax=254, f=1.1111…, 1.111…1×2254-127 = 2127×(2-2-23)
双精度 Emin=1, M=0, 1.0×21-1023 =2-1022
对阶: [△E]补= [ Ex]补-[Ey]补=00 10+ 11 11= 00 01

(完整版)计算机组成原理知识点总结

(完整版)计算机组成原理知识点总结

第2章数据的表示和运算主要内容:(一)数据信息的表示1.数据的表示2.真值和机器数(二)定点数的表示和运算1.定点数的表示:无符号数的表示;有符号数的表示。

2.定点数的运算:定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。

(三)浮点数的表示和运算1.浮点数的表示:浮点数的表示范围;IEEE754标准2.浮点数的加/减运算(四)算术逻辑单元ALU1.串行加法器和并行加法器2.算术逻辑单元ALU的功能和机构2.3 浮点数的表示和运算2.3.1 浮点数的表示(1)浮点数的表示范围•浮点数是指小数点位置可浮动的数据,通常以下式表示:N=M·RE其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。

在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。

浮点数的机内表示浮点数真值:N=M ×2E浮点数的一般机器格式:数符阶符阶码值 . 尾数值1位1位n位m位•Ms是尾数的符号位,设置在最高位上。

•E为阶码,有n+1位,一般为整数,其中有一位符号位EJ,设置在E的最高位上,用来表示正阶或负阶。

•M为尾数,有m位,为一个定点小数。

Ms=0,表示正号,Ms=1,表示负。

•为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于0.5。

对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。

浮点数的机内表示阶码通常为定点整数,补码或移码表示。

其位数决定数值范围。

阶符表示数的大小。

尾数通常为定点小数,原码或补码表示。

其位数决定数的精度。

数符表示数的正负。

浮点数的规格化字长固定的情况下提高表示精度的措施:•增加尾数位数(但数值范围减小)•采用浮点规格化形式尾数规格化:1/2≤M <1 最高有效位绝对值为1浮点数规格化方法:调整阶码使尾数满足下列关系:•尾数为原码表示时,无论正负应满足1/2 ≤M <1即:小数点后的第一位数一定要为1。

计算机组成原理定点数、浮点数等运算方法复习

计算机组成原理定点数、浮点数等运算方法复习


正确
(1) 移码定义 [x]移 = 2n + x(2n>x ≥ 2n)
x 为真值,n 为 整数的位数 移码在数轴上的表示
0 2
n
2
n+1
–1 [x]移码
–2
n
0
2 –1
n
真值

x = 10100 [x]移 = 2 + 10100 = 1,10100 x = –10100 [x]移 = 25 – 10100 = 0,01100
(3) 真值、补码和移码的对照表
真值 x ( n =5 ) -100000 - 11111 - 11110 - 00001 ± 00000 + 00001 + 00010 + 11110 + 11111 … …
[x]补
100000 100001 100010 111111 000000 000001 000010 011110 011111 … …
+ 0.1011 – 0.1011 + 1100 – 1100
0 1011
小数点的位置
1 1011
小数点的位置
0 1100
小数点的位置
1 1100
小数点的位置
2. 原码表示法
(1) 定义
整数
[x]原 =
x 为真值 如 x = +1110
x = 1110
0, x 2
n
2n > x ≥ 0 0 ≥x> 2
和数值部分隔开
(4) 求补码的快捷方式
设x= 1010 时
4+1
1010 则[x]补 = 2 = 100000 1010 = 1,0110 又[x]原 = 1,1010

计算机组成原理学习(三)整数比较,浮点数的表示

计算机组成原理学习(三)整数比较,浮点数的表示

计算机组成原理学习(三)整数⽐较,浮点数的表⽰浮点数的表⽰可能是第⼀个劝退点,第⼀遍直接看视频看不懂,因为移码是在前⾯讲的,和后⾯没联系起来,讲到后⾯太快了⼀时半会理不清,看书却⼀下⼦明⽩了。

1.基于补码的整数⽐较C语⾔程序中,数据后⾯带上个“u”或“U”可表⽰数据是⽆符号的,⽤⽆符号去解释数据。

下⾯的整数判断表达式会出现与常识相违背的结果。

(32位机器,基于补码编码)第⼀条,左边的0的机器数是32位的⼀串0,右边的机器数也是⼀串0,加上U⽤⽆符号解释⼀样是0,所以结果为真。

第⼆条,-1的机器数是32位全部为1,0是32位0,默认带符号⽐较,-1的机器数的真值为-1,所以⽐0⼩,结果为真。

第三条,0带了U,表达式会被解释为⽆符号来⽐较,-1机器数的真值变为2^32-1,远⽐0⼤,结果为假。

第四条,左边的机器数为⾸位为0、其余为1的序列,右边的机器数为⾸位为1,其余为0的序列,按带符号⽐较,左边真值为最⼤正数2^31-1,右边为最⼩负数-2^31,所以结果为真。

第五条,带了U⽤⽆符号⽐较,左边正数不受影响,真值仍然是2^31-1,右边真值变为2^31,所以结果为假。

第六条,左边真值⼀样不受影响,右边先是带符号,真值解释为2^31,⼜强转成int,即带符号,真值变成最⼩负数-2^31,所以结果为真。

第七条,带符号⽐较,左边真值为-1,右边真值为-2,结果为真。

第⼋条,左边强转成⽆符号,真值变成2^32 -1,右边也同理变成2^32 -2,所以结果为真。

发现,机器数按⽆符号去解释,相当于我们平时理解的字⾯意思,也就是不管编码⽅式,真值就是⼆进制正常换算成⼗进制的值。

2.浮点数的编码实数是包括整数部分和⼩数部分的数,那啥叫“浮点数”?啥叫“定点数”?此处的点指的是⼩数点。

如果我⽤8位去存储实数,假如规定了第⼀位存符号,后3位存整数,最后4位存⼩数这种编码⽅式,那么很明显⼩数的精度只能到后四位,⼩数点是固定不变的,这叫“定点数”。

计算机组成原理第4章-浮点数运算方法

计算机组成原理第4章-浮点数运算方法

R为浮点数的基数,常用2、8 、10或16表示。 以下以基数为2进行讨论。
浮点加减运算
设两个浮点数
x M x REx
y M y REy
① 尾数的加减运算规则与定点数完全相同。 ② 当两浮点数阶码不等时,因两尾数小数点的
实际位置不一样,尾数部分无法直接进行加 减运算。如:x=0.123×103
如上例: [x+y]补=00,10;(1)11.0010(1) = 00,10;11.0011 “恒置1”法:尾数右移时,不论丢掉的最高数值
位是“1”或“0”,都使右移后的尾数末位恒置 “1”。这种方法同样有使尾数变大和变小的两种 可能。
特点:误差范围扩大,但正负误差可以相互抵消,实 现相对容易。
5. 判断结果 ,即判断结果是否溢出
1. 对阶
这一步操作是将两个加数的小数点对齐。
小阶向大阶看齐,阶码较小的数,其尾 数向右移,每右移一位,阶码加“1”, 直到两数阶码相同为止。
尾数右移时可能会发生数码丢失,影响 精度。
例:两浮点数 x = 0.1101×201,
y = -(0.1010)×211,求x+y。
y=4.56×102 = 0.456×103
浮点加减运算的步骤
1. 对阶,使两数的小数点位置对齐。
2. 尾数求和,将对阶后的两尾数按定点加减运算规则求和(差)。
3. 规格化,为增加有效数字的位数,提高运算精度,必须将求和 (差)后的尾数规格化。
4. 舍入,为提高精度,要考虑尾数右移时丢失的数值位。
jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正数 0.1xxxxxx 负数 1.1xxxxxx 补码尾数的规格化的表现形式:尾数的最高位与符号位相反。 正数 0.1xxxxxx 负数 1.0xxxxxx
6
计算机组成原理
例:对数据12310作规格化浮点数的编码,假定1位符号位,基 数为2,阶码5位,采用移码,尾数10位,采用补码。
解:12310=11110112= 0.11110110002×27 [7]移=10000+00111 = 10111 [0.1111011000]补=0.1111011000 [123]浮= 1011 1 0 11 1101 1000 = BBD8H
对阶: [△E]补= [ Ex]补-[Ey]补=00 10+ 11 11= 00 01
y向x对齐,将y的尾数右移一位,阶码加1。 [y]补=00 10,00.0101 求和: 00.1101 + 00.0101 01.0010 [x+y]补=00 10,01.0010 右归:运算结果两符号位不同,其绝对值大于1,右归。 [x+y]补= 00 11,00.1001
0.0000001 --- 0.1111111 1/128 --- 127/128 可表示2-11*0.0001 --- 211*0.1111

设阶码2位,尾数4位

0.0000001 --- 111.1
可表示2-111*0.001 --- 2111*0.111

设阶码3位,尾数3位

0.0000000001 --- 1110000
19
(4) 结果规格化 求和之后得到的数可能不是规格化了的数 , 为了增加有效数 字的位数, 提高运算精度,必须将求和的结果规格化。 ①规格化的定义:
采用原码: 正数: S=0.1 ×××…× 负数: S=1.1 ×××…× 采用双符号位的补码:
对正数: 对负数:
1 S 1 2
(二进制)
S=00.1×××…× S=11.0×××…×
计算机组成原理
浮点数表示及运算
计算机组成原理
1
一、浮点数的表示
9×10-28 = 0.9 ×10-27 2×1033 = 0.2 ×1034
任意一个十进制数 N 可以写成 N=10E·×M (十进制表示) 计算机中一个任意进制数 N 可以写成 N=Re×m = 2E×M = 2±e× (±m)
m :尾数,是一个纯小数。 e :浮点的指数, 是一个整数。 R :基数,对于二进计数值的机器是一个常数,一般规定R 为2,8或16
计算机组成原理
7
三 、浮点数的标准格式IEEE754
为便于软件移植,使用 IEEE(电气和电子工程师协会)标准IEEE754 标 准:尾数用原码;阶码用“移码”;基为2。
31 30
23 22
0
32位
64位 S
S
63 62
E
E
M
52 51 0
M
S——尾数符号,0正1负; M——尾数, 纯小数表示, 小数点放在尾数域的最前面。采用原码表示。 E——阶码,采用“移码”表示(移码可表示阶符); 阶符采用隐含方式,即采用移码方法来表示正负指数。
-
最 小 负 数
负数
最 大 负 数
0

N=2E×M |N|→∞ 产生正上溢或者负上溢 |N|→0 产生正下溢或者负下溢
最 小 正 数
正数
最 大 正 数
+
计算机组成原理
3


机器字长一定时,阶码越长,表示范围越大,精度越低 浮点数表示范围比定点数大,精度高
8位定点小数可表示的范围


4
计算机组成原理
二、浮点数规格化 浮点数是数学中实数的子集合,由一个纯小数乘上一个指数 值来组成。
一个浮点数有不同的表示:
0.5; 0.05101 ; 0.005 102 ; 50 10-2 为提高数据的表示精度,需做规格化处理。 在计算机内,其纯小数部分被称为浮点数的尾数,对非 0 值的浮点数,要求尾数的绝对值必须 >= 1/2,即尾数域的最高 有效位应为1,称满足这种表示要求的浮点数为规格化表示:
计算机组成原理 22
(5) 舍入处理 在对阶或向右规格化时, 尾数要向右移位, 这样, 被右移的尾数 的低位部分会被丢掉, 从而造成一定误差,因此要进行舍入处理。 • 简单的舍入方法有两种: ① “0舍1入”法
0.00001+0.11000=0.11001
计算机组成原理 17
例: x=201×0.1101, y=211×(-0.1010), 求x+y=? 解:为便于直观了解,两数均以补码表示,阶码、尾数均采用 双符号位。 [x]补=00 01, 00.1101 [y]补=00 11, 11.0110 [△E]补= [ Ex]补-[Ey]补= 00 01+11 01 = 11 10 △E = -2, 表示Ex比Ey小2, 右移一位, 再右移一位, 至此, △E=0, 因此将x的尾数右移两位. 得 [x]补=00 10, 00.0110 得 [x]补=00 11, 00.0011 对阶完毕.
正下溢出 零 负上溢出 可表示负数范围 可表示正数范围 正上溢出
数轴
计算机组成原理
双精度 Emin=1, M=0, 1-1023 -1022 1.0×2 =2
负下溢出
-(1-2 ) 2
-23
127
-0.5 2
-128
0
0.5 2
-128
(1-2 ) 2
-23
127
14
浮点加减法运算
设有两个浮点数x和y, 它们分别为: x=2Ex ·Mx y=2Ey ·My 其中 Ex 和 Ey 分别为数x和y的阶码, Mx 和 My为数x和y的尾数。 两浮点数进行加法和减法的运算规则是: x±y=(Mx2Ex-Ey±My)2Ey Ex <= Ey
计算机组成原理
20
规格化规则




运算结果产生溢出时,必须进行右归 如变形补码结果出现 10.XX 或者 01.XXX 如运算结果出现 0.0XXX或 1.1XX 必须左归 左归时最低数据有效位补0 右归时连同符号位进位位一起右移 左归时,阶码作减法,右归时,阶码作加法
规格化方法

Emin=1, Emax=254/2046
计算机组成原理
9
例:若浮点数x 的二进制存储格式为(41360000)16,求其32位 浮点数的十进制值。
解: 0100,0001,0011,0110,0000,0000,0000,0000 数符:0 阶码:1000,0010 尾数:011,0110,0000,0000,0000,0000 指数e=阶码-127=10000010-01111111 =00000011=(3)10 包括隐藏位1的尾数: 1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)s×1.M×2e =+(1.011011)×23=+1011.011=(11.375)10
1.隐藏位技术
原码非0值浮点数的尾数数值最高位必定为 1,则在保存浮点数到内存前,
通过尾数左移, 强行把该位去掉, 用同样多的位数能多存一位二进制数, 有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。 当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。
2.阶码用“移码”偏移值127而不是128
非零0xxxx 0
NaN Not a Number
sNaN Signaling NaN +∞
1
0/1 0/1
255
1~254 0
0
-∞
(-1)S× (1.f) ×2(e-127) (-1)S× (0.f) ×2(-126)
f f (非零)
0
0/1
0
+0/-0
计算机组成原理
13
IEEE754 规格化浮点数表示范围
s=1,E=12610 = 011111102,F=1000 … 000。
1 011,1111,0 100,0000,0000,0000,0000,0000 B F 4 0 0 0 0 0 H
计算机组成原理
12
单精度浮点数编码格式
符号位
阶码
尾数
表示
0/1
0/1 0
255
255 255
非零1xxxx
• 对阶原则 阶码小的数向阶码大的数对齐; 对阶过程小阶的尾数右移,每右移一位,其阶码加1(右规)。
210*(0.11000)+28*(0.00110) 大阶对小阶 210*(0.11000)--28*(11.000) 11.000+0.00110 ?????????
小阶对大阶 28*(0.00110)--210*(0.00001)
计算机组成原理
8
规格化浮点数的真值
31 30
32位浮点数格式:
23 22
0
S
E
M
一个规格化的32位浮点数x的真值为: x = (-1)s (1.M) 2E-127 e =E – 127 一个规格化的64位浮点数x的真值为: 这里e是真值,E是机器数 x = ( –1)s×(1.M)×2E-1023
0.1000101010
把不满足这一表示要求的尾数,变成满足这一要求的尾数 的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改 阶码实现。
计算机组成原理 5
规格化目的: 为了提高数据的表示精度 为了数据表示的唯一性 尾数为R进制的规格化: 绝对值大于或等于1/R 二进制原码的规格化数的表现形式:
计算机组成原理
00.0XXXX 11.1XXXX 01.XXXXX 10.XXXXX
相关文档
最新文档