使用 32 位整数和按位运算符的标准 C 浮点到自定义浮点表示?

问题描述

我正在尝试编写一个小程序,使用 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...