<SPAN id="tt_tagDIV" style="word-break:break-all" class="tt_title">RPG Girls</SPAN>
RPG Girls
 
Rabbit Princess Grass!!!
 
 
    最新日志
·七种qsort排序方法 [转...(2006-09-24)
·Factstone Benc...(2006-09-20)
·N!问题(2006-09-17)
·毛毛,还我香蕉!!!(2006-09-15)
·小希的迷宫HDU1272(2006-09-14)
·用电脑最容易被忽视的18个危...(2006-09-13)
·1024 Max Max S...(2006-09-13)
·G要歇菜了! [原](2006-09-08)
·Last non-zero ...(2006-09-08)
·计算交点数HDU1466(2006-09-07)
·装错信封问题(2006-09-07)
·猜猜他们是谁~?~(2006-09-06)
·我们的第一次 [原](2006-09-06)
·RP不好啊!(2006-09-06)
·我们在一起 [原](2006-09-06)
·关于浮点数的存储 [转](2006-09-06)
·取石子游戏HDU1527 [...(2006-09-05)
    历史档案
    最新评论
wujita01/2008-04-04
ddddddddd....
访客/2008-01-12
ft
Louis.G/2007-09-27
你的解法基于划分,....
毛毛的同学(访客)/2007-04-30
晕死,我问毛毛这个....
不在现场(访客)/2007-02-06
这条公式到底是啥用....
Speakless(访客)/2006-11-17
这题都有..呵呵....
linle(访客)/2006-09-28
貌似楼上(还是楼下....
blogkid(访客)/2006-09-27
如果我没记错的话,....
草儿 (lasiazhang)/2006-09-24
为什么我贴的代码都....
访客857690/2006-09-09
恩,下次记得给我带....
访客429047/2006-09-08
可怜的人啊。。早知....
huangwei1024 (威士忌)/2006-09-07
欧拉原来是瑞士数学....
huangwei1024 (威士忌)/2006-09-06
不错不错
比我的好看....
访客913273/2006-09-06
恭喜RPG开张~

B....
访客772200/2006-09-06
挖哈哈哈哈哈,我是....
    友情链接
    我的LOGO
 
草儿     加为好友   给我消息
性别:积分:
来自:年龄:18岁
关于浮点数的存储 [转]2006-09-06 00:02:42
标签:缩起正文  字号: 
今天比赛正好有关浮点数IEEE 754标准的这么一题,哈哈,这种BT的关于编码的题一向是我的最爱之一

虽然以前在《编码的奥秘》里看到过这个这个标准,不过太久了,记不大清了,还是从baidu上弄来这么一段文字



通常complier都会用IEEE 754/854的规定来定义float and double
但是也有例外,但应该大部份都是遵循这规定
float 通常用 32 bits表示,double通常用 64 bits
是因为IEEE(International Electric and Electronic engineering)754/854的关系
首先要先介绍IEEE的格式:
float和double(差别在M字段的长度)其格式为下:
1bits    8bits       23bits(double为 55bits)
S    EEEEEEEE  MMMMMMMMMMMM........MMMMMM

S: sign bit,代表正负号 0为正,1为负

E: exponent,代表该数的指数字段,使用ex-128 code(ps.1) 范围为 -127~126 (-128,和127为underflow和overflow)

M: Mantissa,代表该数的值,这里注意IEEE 754/854除了规定必须将小数正规化外(ps.2)还必须将正规化的部份最前面的1省略 ex: 原本是 1.111000100000本来mantissa应该记成
1111000100000....可是在IEEE 754/854中则明定必须将前面的1省略所以mantissa字段的值就变成 111000100000.......

ps.1 Excess-code(超码表示法):顾名思义就是把0超过该表示法规定的值的码 
   ex:ex-3码,那在ex-3码中的3就是十进制的0,5就是十进制的2,算法就是
(将你的值 - 超码的值) = 超码表示法的值,以ex-3码为例 (5 - 3) =2,(3 - 3 ) = 0

ps.2 小数正规化:我们在储存小数时,IEEE 754/854规定必须将数字化成正规化
何谓正规化呢?我们在平常用的科学记号法,如 pi = 3.1415926, e = 2.71828
而正规化呢?就是把小数化成 1<小数 <2 之间的数字在转换成二进制最后变成
1.xxxxx * 2^exp, 这就是小数正规化 

回复() | 人气() | 引用() | 推荐 | 保存日志 | 问题日志 | 收藏到网摘 | 返回圈子首页
 
 
博客主页 博客主页 FAQ帮助 注册 退出