问题描述
我正在尝试编写一个小程序,使用 32 位整数和按位运算符将 C 浮点数转换为 12 位浮点数表示。
顺序是:[未使用(位 31 - 12)] [符号(位 11)] [exp(位 10 - 6)] [压裂(位 5 到 0)]
[ ...,...,...] [] [][][][][] [][][][][][]
我只使用 12 L.S.B.对于这种表示。
例如
使用 IEEE 标准,二进制浮点 7.375 为:111.011
科学记数法:1.11011x2^2
偏差 = 2^(e-1)-1 = 15
E = 2
exp = E + 偏差 = 17 = 10001
所以我想以整数形式存储浮点表示,如下所示:
[... unused (bits 31 - 12 set to 0) ...]-[0]-[1][0][0][0][1]-[1][1][0][1][1][0]
我可以手动进行转换,但我正在尝试通过按位操作来完成此操作。我想我被卡住的地方是,我将如何完成程序中所谓的小数点移位以获得表示的 frac 部分?另外,我怎么知道 E 的值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)