计算机组成原理第6章-(计算机的运算方法)【上】

机器数与真值

把符号“数字化”的数称为机器数,而把带“+”、“-”符号的数称为真值

原码表示法

原码是机器数中最简单的一种表示形式,0表示整数1表示负数

约定整数的符号位和数值位之间用“逗号”隔开。

在原码中,0有两种表示形式:“+0”和“-0”是不一样的。

反码表示法

若真值为负数,那么反码为原码中除符号位外,其余所有位取反。

若真值为整数,那么反码等于原码

补码表示法

若真值为负数,那么补码为反码+1,即对原码取反加1.

若真值为整数,那么补码等于反码等于原码。

补码的性质:

1.补码的0表示唯一。

2.负数补码的符号位永远是1,0和正数补码的符号位永远是0。

3.补码表示的范围,在最小值处可以额外减-1。

例如8位有符号补码的表示范围是[-128,127]。

移码表示法

移码为对补码的符号位取反得到。

小数的表示

在计算机中,小数点有两种方式表现:“定点表示”、“浮点表示”。

用定点表示的数称为定点数,用浮点数表示的数称为浮点数。

定点表示

对于定点表示,有两种格式,如下图所示:

当小数点位于数符和第一数值位之间时,机器内的数为纯小数。

当小数点位于数值位之后时,机器内的数为纯整数。

采用定点数的机器称为:“定点机”。

数值部分的位数n决定了定点机中数的表示范围。

若机器数采用原码,小数定点机中数的表示范围是:“-(1-2^{-n})”~“(1-2^{-n})”,整数定点机中数的表示

范围是:“-(2^{n}-1)”~“(2^{n}-1)”。

在定点机中,当机器处理的数不是纯小数或者纯整数时,会发生溢出。

浮点表示

对于不是纯整数或者纯小数的数,我们需要用浮点数来表示。

浮点数即小数点的位置可以浮动的数。

通常,浮点数的表示方式是:

其中,S为尾数(可正可负),j为阶码(可正可负),r是基数(或基值)。

浮点数的表示方法有很多种,例如:

另外,将尾数最高位为1的浮点数称为格式化数。

如:N = 0.110101 * 2^{10}就是浮点数的格式化格式。

ps:(2^{10}中的10指的是二进制代码“10”,换算成人类意义上的数值是2)。

浮点数的表示形式

采用这种数据格式的机器称为浮点机:

阶符和阶码的位数m合起来反映了浮点数的表示范围及小数点的实际位置。

尾数是小数,其位数n反映了浮点数的精度。

尾数的符号反映了浮点数的正负。

浮点数的表示范围

当浮点数阶码大于最大阶码时,称为上溢。

当浮点数阶码小于最小阶码时,称为下溢。

浮点数的规格化

为了提高浮点数的精度,其尾数必须是规格化数。

如果一个浮点数不是规格化数,就要通过修改阶码并同时左右移动位数的方法来变成规格数。

将非规格化数转换为规格化数的过程称为规格化

当基数为2时,尾数最高位为1的数为规格化数

规格化时,尾数左移一位,阶码减1(这种规格化称为向左规格化,简称为左规)。

可以理解为小数点右移一位,阶码减1

位数右移一位,阶码加1(这种规格化称为向右规格化,简称为右规)。

可以理解为小数点左移一位,阶码加1

当基数为4时,尾数的最高两位不全为0的数为规格化数。

尾数左移两位,阶码减一。

尾数右移两位,阶码加一。

当基数为8时,尾数的最高三位不全为0的数为规格化数。

尾数左移三位,阶码减一。

尾数右移三位,阶码加一。

例题:

1.设浮点数字长为16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),将十进制数“+\frac{13}{128}

”写成二进制定点数和浮点数,并分别写出它在定点机和浮点机中的机器数形式。

答:

x的二进制形式为:0.0001 1010 00

定点数表示:0.001 1010 00

浮点数规格化表示:0.1101 0000 00 * 2^{-11}

在定点机中,x原=x反=x补 = 0.0001 1010 00

浮点机中:

x原 = 1 0011 0 1101 0000 00或1,0011;0.1101000000

x反 = 1 1100 0 1101 0000 00或1,1100;0.1101000000

x补 = 1 1101 0 1101 0000 00或1,1101;0.1101000000

ps:可以发现阶码为负数的时候,只需要对阶码部分数据取反+1,而数值位部分不变。

当数值位符号为负数时,只需要对数值位部分取反+1,而阶码部分不变。

IEEE 754标准【极其重要

现代计算机中,浮点数一般采用IEEE 754标准。

形式如下:

其中,S为数符,表示浮点数的正负。

阶码用移码表示

也可以理解为:

符号位 阶符 阶码 尾数 总位数

     1        1       7       23      32 

尾数部分通常是规格化表示,即非“0”的有效位最高位总是“1”。

即: 

此外,还有一种计算IEEE 754的方法,在这里我们使用例题给出:

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值