Grad-ProbAsk 板


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是多少来决定要不要进位呢? 第三个问题: 如图: https://imgur.com/a/bqOdrDt 简单来说就是这两个浮点数做减法 并且用2补数的方式来做 中间过程我大概都可以接受 而绿框的部分是最後的结果,因为正规化所以Guard以及Round bit都会往左一位 接着蓝框的部分是要rounding了 我不懂的是 为什麽此时的(G,R)明明是(1,0) 且S=1 应该是要进位的 但是他蓝框的地方却不考虑G,只考虑R 然後就直接舍去了呢? 目前主要就这三个问题,希望各位可以替我解答一下,感激不尽! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.49.195 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1590754974.A.FB1.html ※ 编辑: ayn775437403 (118.160.49.195 台湾), 05/29/2020 21:55:22
1F:→ Handsomeshen: 觉得你GRS没有搞清楚 照那张图 G只有在R==1 s==0 06/01 03:08
2F:→ Handsomeshen: 时才会拿来判断要不要进位 而用G判断的原因是因为 06/01 03:08
3F:→ Handsomeshen: 他=0 =1的机会是一半 公平 很久以前的计组作业 如 06/01 03:08
4F:→ Handsomeshen: 有错误 请多指教 06/01 03:08
5F:推 Handsomeshen: 你第一个问题是3没错 s是被舍弃的部分or起来的 不过 06/01 03:11
6F:→ Handsomeshen: 有R要注意位数 06/01 03:11
7F:推 Handsomeshen: 欧欧欧欧 你的问题应该是GRS位子弄错 都要往前一个B 06/01 03:14
8F:→ Handsomeshen: it 06/01 03:14
你好,感谢你的回覆 针对我第一个问题我有在c_and_cpp版得到解答了 连结在这: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1590905575.A.34F.html 所以第一个问题的答案应该是:(一), 也就是运算过程中如果有移位超过mantissa所能表示范围的bit, 仍要保留,并且拿去运算,最後得到的结果再做rounding 不能在运算的过程中就把这些超过的bit给rounding掉 而我有用这个网站验证一下:http://weitz.de/ieee/ 发现如果是用第(三)种方法,答案不是正确的。 不过我现在对GRS的位子有点疑惑。 请问您认为正确的GRS位子会是在哪里呢? 我认为要找GRS,应该是要先做完normalize才能找 我的找法是:G是mantissa最後一个bit的右边第一位,R是G的右边一个bit, S是R右边所有bit做OR运算 (以IEEE 单精度来举例,mantissa有23bit, Guard bit就是第24bit,Round bit就是第25bit) 例如:我有一个浮点数加法运算,运算完後得到: 1.1111 0000 1111 0000 1101 1011 0011 1100 * 2^15 (假设已经normalize了) mantissa多达了32bit,所以要rounding,因此我的G,R会取在: 1.1111 0000 1111 0000 1101 1011 0011 1100 * 2^15 | ||-------| G R这边做OR得到S=1 G=mantissa的"第24bit",R=mantissa的"第25bit" 所以GR=10,S=1>要进位 =>因此最後答案为1.1111 0000 1111 0000 1101 110 * 2^15 不知道这样理解对不对呢? 谢谢 ※ 编辑: ayn775437403 (123.195.195.29 台湾), 06/01/2020 15:28:23
9F:推 Handsomeshen: 不好意思 去年的作业 观念错蛮大的 抱歉造成你的困 06/04 03:58
10F:→ Handsomeshen: 扰 06/04 03:58
11F:→ Handsomeshen: https://i.imgur.com/Ug1J0gk.jpg 06/04 03:58
12F:→ Handsomeshen: 附上刚刚google的GRS 06/04 03:59
13F:→ Handsomeshen: 祝 考试顺利 06/04 03:59







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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP