Chinaunix

标题: 请教浮点数 [打印本页]

作者: doudouya    时间: 2007-09-12 10:39
标题: 请教浮点数
最近在学习浮点运算器的写法!从opencores下了一个IP核,可看到浮点的乘除法的时候就看晕了(阶码溢出的判断和处理),关键是书本的知识没学懂!可下来一查,关于这方面的书和资料太少。不知道有没有哪位达人给指条路……
万分感谢!有感兴趣的也交流,交流!
作者: cjaizss    时间: 2007-09-12 11:09
首先我觉得应该熟悉IEEE标准的浮点数格式标准。
作者: doudouya    时间: 2007-09-12 12:19
ieee754标准已经看过了!
Representation  和 Arithmetic 都有讲,说的都是规则!
现在缺的就是一个实现,不知哪本书有比较详细的实现讲解……
作者: cjaizss    时间: 2007-09-12 12:43
浮点数的运算实现?
我们就以乘法作比方,
乘法器你应该知道
浮点数是用科学记数法表示。
那么指数部分的运算就是把加法器改造一下,乘法部分也就是把乘法器改造一下,最后整合的时候可以实现异常处理
作者: doudouya    时间: 2007-09-12 13:51
基本的实现过程已搞定
缺的是一些特殊的处理,比如四种舍入模式 + 阶码溢出 + 尾数溢出 的组合时的处理


google了好几天了,也没有找到满意的答案。还望具体指点一下!
作者: MMMIX    时间: 2007-09-12 20:51
原帖由 doudouya 于 2007-9-12 12:19 发表
ieee754标准已经看过了!
Representation  和 Arithmetic 都有讲,说的都是规则!
现在缺的就是一个实现,不知哪本书有比较详细的实现讲解……

可以结合 TAoCP, Vol2, Chap 4.2 和 MMIXware 的 mmix-arith.w 一起看.
作者: mik    时间: 2007-09-12 22:06
浮点数方面着实是个难点,祝你好运
作者: doudouya    时间: 2007-09-13 11:53
谢了,楼上的!
作者: evaspring    时间: 2007-09-13 16:39
嘻:wink:

记得有段关于浮点数代码的注释是: What's the fuck !
作者: beepbug    时间: 2007-10-22 15:25
没看懂楼主到底想知道什么?浮点乘(除)大致如下(以乘为例):
1)两数的尾数部分相乘。
2)将所得的积进行归一化。
3)由归一化结果出来指数部分的修正值。
4)两数的指数部分相加。
5)所得的和与修正值相加。
6)判断是否溢出。
以IEEE 754中的64位浮点数为例。其指数部分范围为0~2047。小于0或大于2047,就是溢出。
参见我的BLOG。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2