永发信息网

规格化浮点数的计算机组成原理

答案:1  悬赏:70  手机版
解决时间 2021-11-24 12:30
规格化浮点数的计算机组成原理
最佳答案
若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。例如,十进制数可以表示成1.11×10ˇ0,0.111×10ˇ1,0.0111×10ˇ2等多种形式。为了提高数据的表示精度,当尾数得值不为0时,尾数域的最高有效位应为1,这称为浮点数的规格化表示。否则以修改阶码同时左右移小数点位置的办法,使其变为规格化数的形式。
但在IEEE754标准中,一个规格化的32位浮点数x的真值表示为:
x=(-1)ˇS×(1.M)×2ˇ(E-127) e=E-127 其中S是浮点数的符号位,占1位。M是尾数,放在低位部分,占用23位,小数点位置放在尾数域最左(最高)有效位的右边。E是阶码,占用8位。它的尾数域所表示的值是1.M。e为实际指数。因为规格化浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。
64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023.因此规格化的64位浮点数x的真值为
x=(-1)ˇS×(1.M)×2ˇ(E-1023) e=E-1023 将十进制数11.375表示为754标准存储格式(就是上文提到的一种规格化浮点数的国际标准)
11.375=+1011.011=+(1.011011)×2ˇ3=(-1)ˇS×(1.M)×2ˇe
可知S=0,包括隐藏位1的尾数1.M=1.011011=1.011 0110 0000 0000 0000 0000 e=3
E=e+127=130=011+01111111=10000010
则二进制数格式为
0 1000 0010 0110 1100 0000 0000 0000 0000
- ------------- ---------------------------
↑ ↑ ↑
S 阶码(8位) 尾数(23位) create table 浮点数(浮点数);
insert into 浮点数 values(1.00);
insert into 浮点数 values(1.10);
insert into 浮点数 values(1.021);
insert into 浮点数 values(1.01);
insert into 浮点数 values(100.2);
insert into 浮点数 values(0.586);
insert into 浮点数 values(299.999);
insert into 浮点数 values(53.000);
insert into 浮点数 values(35003.12);
.mode column
.h on
select * from 浮点数;
浮点数
----------
1.0
1.1
300
1.021
1.01
100.2
0.586
299.999
53.0
35003.12
--输入整数,保存整数,输入小数,如果小数点后边都是零,只保留一个零。
--四舍五入ROUND(字段名,保留小数点位数)
select 浮点数, round(浮点数,2)四舍五入from 浮点数;
浮点数 四舍五入
---------- ------------
1.0 1.0
1.1 1.1
300 300.0
1.021 1.02
1.01 1.01
100.2 100.2
0.586 0.59
299.999 300.0
53.0 53.0
35003.12 35003.12
--四舍五入保留2位小数,整数后面加一个零.
select round(浮点数,2),LENGTH(ROUND(浮点数,2))-LENGTH(CAST(浮点数 AS INTEGER)) from 浮点数;
round(浮点数,2) LENGTH(ROUND(浮点数,2))-LENGTH(CAST(浮点数 AS INTEGER))
------------------ ------------------------------------------------------
1.0 2
1.1 2
300.0 2
1.02 3
1.01 3
100.2 2
0.59 3
300.0 2
53.0 2
35003.12 3
0.5 2
--四舍五入后的位数长度减去取整后的位数长度行规教徒等于2的需要加一个零.
sqlite> SELECt 浮点数 AS 'raw value', (ROUND(浮点数,2)) AS 'RND value' , CASE WHEN (LENGTH(ROUND(浮点数,2))) - (LENGTH(CAST(浮点数 AS INTEGER)) ) =2 THEN SUBSTr(' '||(ROUND(浮点数,2))||'0', -10,10) ELSE SUBSTr(' '||(ROUND(浮点数,2 )),-10,10) END AS 'result' FROM 浮点数;
raw value RND value result
---------- ---------- ----------
1.0 1.0 1.00
1.1 1.1 1.10
300 300.0 300.00
1.021 1.02 1.02
1.01 1.01 1.01
100.2 100.2 100.20
0.586 0.59 0.59
299.999 300.0 300.00
53.0 53.0 53.00
35003.12 35003.12 35003.12
0.5 0.5 0.50

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
脑涨落图正常说明什么?
我在文登开了个理发店,在装修,都需要办什么
这个台子我想用来练臀部和腿部 请问怎么锻炼
女生同意男生接送暗示什么?
SQL查询。如图,怎么把原表变成结果表。求语
如果恋爱才2天,男票每天对你发脾气,让你心碎
非洲鼓的形状简介
玩宣城太极洞大概需多少时间?
养老保险金交够25年和28年有区别吗
大锅配10750ku高频头能收到那些卫星呢
比七年级上册语文优化设计第33页那幅图是什么
花藤字浅ོ浅ꦿ℘゜এ
请问图片中这个韩国字是什么中文意思呢?
我有一张微博微卡,一张联通腾讯大王卡,一张
小说的男主角姓王怎么忘了书名
推荐资讯
本命年为什么多穿红的
停车场(市场路)(市场路与桐银路交叉口西南150
合肥有什么手工活可以拿回家做? 悬赏分多
女生晚宴妆怎么打扮
我无房产自己想建房领导又不批我该怎么办
为什么我国公司更愿选择股权融资,而非负债融
高程测量记录表如何计算填写
72乘0.85+3.4乘0.64的运算
企业如何获得银行的授信?需要什么条件?比如
影片“功夫熊猫”阿波打败残豹使用的最后一击
ps4港服会免是什么意思
为什么深圳卫视不播完《你好,旧时光》了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?