Electronics 板


LINE

(代PO) 大家好,小弟最近在学浮点数 有几个运算观念卡关,因此来这边求助大家。 这边问题都以IEEE 754 单精度浮点数为例 (即1个sign bit,8个 exponent bit,23个mantissabit) 第一个问题: 两个浮点数在算加减法的时候,exponent小的mantissa要对齐exponent大的mantissa 也就是要看两个浮点数的exponent差距多少来看mantissa要移位多少 那如果exponent小的那个的mantissa在移位过後超过mantissa所能表示的范围 要把超过范围的那几个bit一起算,还是要舍去呢? 举例来说 我要算两个浮点数相减 第一个数: 0 10010011 0000 0000 0000 0000 1111 111 | |------| |--------------------------| sign exponent mantissa 第二个数: 1 10001110 0000 0000 0000 0111 1111 111 | |------| |--------------------------| sign exponent mantissa 第一个数的exponent换成十进位是147,第二个数的exponent换成十进位是142 而147-127(bias)=20,142-127=15 所以事实上上面两个数可以变为: 第一个数: 1.0000 0000 0000 0000 1111 111 * 2^20 第二个数: -1.0000 0000 0000 0111 1111 111 * 2^15 因为第二个数比第一个数的次方少五,所以要右移5个bit 那麽问题来了,移完之後是会变成 (一)所有bit都保留,因此共要28bit表示mantissa -0.0000 1000 0000 0000 0011 1111 1111 *(2^20) |----| 这五个bit超过23bit (二)超过23bit之後直接砍掉,因此满足23bit表示mantissa -0.0000 1000 0000 0000 0011 111 *(2^20) (三)加入round,guard,sticky三个bit去考虑,因此用25bit表示mantissa -0.0000 1000 0000 0000 0011 1111 1 且设S=1(因为砍掉後面三个1) | | G R 是上面(一)、(二)、(三)的哪一种呢? 因为这三种不同的移位方式会造成最後答案都不一样, 所以我想IEEE 754应该会有明确的规范。 我个人是比较倾向於第(三)种, 因为如果是第(一)种的话,两个浮点数若exponent差太多 那就要保存一大堆数字,像是两数的exponent如果差了一百 那小的exponent很可能就要保存一百个0外加原本的23个mantissa 等於要保存123个bit,以硬体的角度而言应该是不会这样设计? 第二个问题: 在网路上查到的引入round,guard後的rounding方法大概是这样 若 (一): (G,R) = (0,0)>舍去 (二): (G,R) = (0,1)>舍去 (三): (G,R) = (1,0)>看sticky bit是多少决定要不要舍or进 (四): (G,R) = (1,1)>进位 我对於(一),(二),(四)这三种方式都能接受 但是(三),若(G,R) = (1,0)的话 换成十进位不就是0.5,以四舍五入的角度来说不是就是直接进位吗? 为什麽还要看sticky是多少来决定要不要进位呢? 目前主要就这两个问题,希望各位可以替我解答一下,感激不尽! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.49.195 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1590756972.A.FD5.html
1F:→ colinshih: 你怎麽手算,浮点就这麽算,但超出的位数用1-bit表示即可 05/29 21:23
谢谢您的回答 但是超出的BIT似乎没办法只用1BIT表示吧? 如果要表示的话,应该至少也要用GUARD和ROUND两个BIT来表示吧?
2F:→ colinshih: 100-0.0011,100 + 0.0011 那一位要设在那?想想就懂了 05/29 22:02
抱歉,小弟资质较差 想了蛮久的还是没办法了解您在说什麽 我是看到白算盘课本上的范例在移位的时候若有超过范围的话 似乎是保留一个GUARD一个ROUND来运算 跟您说的似乎不太一样才会这样问@@.. ※ 编辑: ayn775437403 (118.160.49.195 台湾), 05/29/2020 23:32:50
3F:推 colinshih: ex 100+0.0011->100.0+0.01->100.01 g.rs=0.01 05/30 00:21
4F:→ colinshih: 按rounding method 决定mantissa 05/30 00:21
5F:→ colinshih: sticky = next bit of rounding = or(001) 05/30 00:23
6F:→ colinshih: sticky = next bit of rounding = or(011) 修正 05/30 00:24
7F:→ colinshih: 011 是 被加数在 rounding bit 後的数 05/30 00:26
所以依照您的意思来说 我问题一的答案应该是(三)吧? 就是需要加入g r s来判断对吧 ※ 编辑: ayn775437403 (114.43.134.169 台湾), 05/30/2020 16:14:03







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP