组成原理例题

更新时间:2024-06-09 03:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

[例1] 若浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。 ①将十六进制数展开后,可得二进制数格式为

②指数e=阶码-127=10000010-01111111=00000011=(3)10

③包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 ④ 于是有x=(-1)s×1.M×2

e =+(1.011011)×2=+1011.011 =(11.375)10

3[例2] 将十进制数数20.59375转换成位浮点数的二进制格式来存储 [解:] ①首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011

②然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×2 e=4

S=0 E=4+127=131 M=010010011

③最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 =(41A4C000)16

定点数的运算

定点数的位移运算;原码定点数的加减运算;补码定点数的加减运算;定点数的乘除运算;溢出概念和判别方法。 定点数表示:带符号数 不带符号数

定点纯小数 符号 小数点固定于符号位之后,不需专门存放位置 量值 表示数的范围是 0≤|x|≤1-2纯小数的表示范围 x=0.00...0 x=1.00...0 x=0.11...1 x=0.00...01 x=1.00...01 x=1.11...1 x=0 正0和负0都是0 -n4x=1-2-n x=2-n x=-2-n 最大 最接近0的正数 最接近0的负数 x=-(1-2-n ) 最小 定点纯整数 表示数的范围是 0≤|x|≤2-1 五、浮点表示:小数点位置随阶码不同而浮动

n

1、格式:N=R.M

阶符 阶码 数符 尾数

IEEE754标准(规定了浮点数的表示格式,运算规则等)

? 规则规定了单精度(32)和双精度(64)的基本格式. ? 规则中,尾数用原码,指数用移码(便于对阶和比较)

IEEE754标准

? 基数R=2,基数固定,采用隐含方式来表示它。 ? 32位的浮点数:

? S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。 ? M是尾数, 23位,在低位部分,采用纯小数表示 ? E是阶码,8位,采用移码表示。移码比较大小方便。

? 规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是

惟一的。

? 尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在

小数点的左边。 ? 采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一

个固定的偏移值127(01111111),即E=e+127。

? 64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因

此规格化的64位浮点数x的真值为:

x=(-1)S×(1.M)×2E-1023 e=E-1023

? 一个规格化的32位浮点数x的真值表示为 x=(-1)S×(1.M)×2E-127 e=E-127

例1若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解:将16进制数展开后,可得二制数格式为

0 100 00010 011 0110 0000 0000 0000 0000

S 阶码(8位) 尾数(23位) 指数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

例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。 解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011

然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×24 e=4于是得到:

S=0, E=4+127=131, M=010010011

最后得到32位浮点数的二进制存储格式为: 01000001101001001100000000000000=(41A4C000)16

E

数的机器码表示

机器码:机器中表示的数, 要解决在计算机内部数的正、负符号和小数点运算问题。 原码反码补码移码 1、原码表示法

定点小数x0.x1x2…xn 有正0和负0之分 范围2-1~1-2

x=+0.11001110

[x]原=0.11001110 [-x]原=1.11001110

定点整数X0X1X2…Xn

x 2n>x≥0 0,正数 [x]原= 符号

2-x 0≥x >-2n 1,负数 说明:

有正0和负0之分 范围 1 -2 ~ 2 – 1

例:x=+11001110 [x]原=011001110 [-x]原=111001110 原码特点:

表示简单,易于同真值之间进行转换,实现乘除运算规则简单。 进行加减运算十分麻烦。 2、 补码表示法

定点小数x0.x1x2…xn

x 1>x≥0 0,正数 [x]补= 符号

2+x 0≥x≥ -1 1,负数 例: x= -0.1011

[x]补=10+x=10.0000-0.1011=1.0101 y=-0.01111

[y]补=10+y=10.00000-0.01111=1,10001 定点整数x0x1x2…xn

x 2>x≥0 0,正数,0 [x]补= 符号 2

n?1

nnnn-n-n+x 0≥x ≥ -2 1,负数

n最大的优点就是将减法运算转换成加法运算。 [X]补-[Y]补= [X]补+[-Y]补

例如 X=(11)10=(1011)2 Y=(5)10=(0101)2 已知字长n=5位

[X]补-[Y]补 =[X]补+[-Y]补

=01011+11011=100110=00110=(6)10 注: 最高1位已经超过字长故应丢掉

? 无正零和负零之分

(2)由原码求补码除符号位以外,其余各位求反,末位加1 例:X=- 0.0101011

解:[X]原= 1 0 1 0 1 0 1 1 [X]补= 1 1 0 1 0 1 0 1

(3)由[X]补求[-X]补:连符号位一起各位求反,末位加1。

(4). 由[X]补求[X/2]补:将[X]补的符号位和数值位一起向右移动一次.符号位移走后保持原来的值不变.移码表示法

[x ]补=[x ]反+2 反码表示有正0和负0之分 移码表示法(用在阶码中)

定点整数定义 [x]移=2+x 2>x≥-2

00000000~11111111(-2n~2n-1) 例+1011111 原码为01011111

补码为01011111 反码为01011111 移码为 11011111

例-1011111 原码为11011111

补码为10100001 反码为10100000 移码为00100001

特点:移码和补码尾数相同,符号位相反 范围:-2n~2n-1

补码加减法 补码加法

公式:[x+y]补=[x]补+[y]补 补码减法

为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补

? 假设︱x︱﹤1, ︱y︱﹤1, ︱x+y︱﹤1 ? 现分四种情况来证明 (1)x﹥0,y﹥0,则x+y﹥0

[x]补=x, [y]补=y, [x+y]补=x+y 所以等式成立.

(2)x﹥0,y﹤0,则x+y>0或x+y<0 [x]补=x, [y]补=2+y, [x]补+[y]补=x+ 2+y

当x+y>0时,2 + (x+y) > 2,进位2必丢失,又因(x+y)>0, 故 [x]补+[y]补=x+y=[x+y]补 当x+y<0时,2 + (x+y) < 2,又因(x+y)<0,

nnn-n

故 [x]补+[y]补=2+(x+y)=[x+y]补 所以上式成立

(3)x<0,y>0,则x+y>0或 x+y<0

这种情况和第2种情况一样,把x和y的位置对调即得证。 (4)x<0,y<0,则x+y<0

相加两数都是负数,则其和也一定是负数。 ∵[x]补=2+x, [y]补=2+y

∴[x]补+[y]补=2+x+2+y=2+(2+x+y)

上式右边分为”2”和(2+x+y)两部分.既然(x+y)是负数,而其绝对值又小于1,那么(2+x+y)就一定是小于2而大于1的数,进位”2”必丢失.又因(x+y)<0, 所以[x]补+[y]补=2+(x+y)=[x+y]补 溢出的检测

2.3 定点乘法运算 2.3.1 定点原码乘法 2.3.2 定点补码乘法 1、定点原码乘法原理

? [x]原=xf.xn-1…x1x0 [y]原=yf.yn-1…y1y0 ? [x.y]原=(xf ⊕ yf)+(0. xn-1…x1x0).(0. yn-1…y1y0) ? 尾数乘法如下: 设x=0.1101,y=0.1011

0.1 1 0 1 (x) × 0.1 0 1 1 (y) 1 1 0 1 1 1 0 1 0 0 0 0

+ 1 1 0 1 0. 1 0 0 0 1 1 1 1 (z)

方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(时间延迟太长). 方法二:不带符号位的阵列乘法器 2、不带符号位的阵列乘法器 3、带符号位的阵列乘法器

? 求补电路

原理:算前求补-乘法器-算后求补

2.6 浮点运算方法和浮点运算器

2.6.1、浮点加减运算 设有两个浮点数x和y,它们分别为

x=2

Ex·MX

y=2

Ey·MY

其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是

x±y=(Mx2Ex-Ey±My) 2

Ey, 设Ex<=Ey

2、浮点运算步骤如下:

1. 0 操作数的检查,看有无简化操作的可能;

本文来源:https://www.bwwdw.com/article/98x6.html

Top