【发布时间】:2015-06-12 04:55:59
【问题描述】:
假设一个低端微处理器没有浮点运算,我需要生成一个 IEE754 单精度浮点格式数字来推送到一个文件中。
我需要编写一个函数,它接受三个整数作为符号、整数和小数,并返回一个字节数组,其中 4 个字节是 IEEE 754 单精度表示。
类似:
// Convert 75.65 to 4 byte IEEE 754 single precision representation
char* float = convert(0, 75, 65);
请问有人有任何指针或示例 C 代码吗?我特别难以理解如何转换尾数。
【问题讨论】:
-
几乎所有嵌入式编译器都内置了对 IEEE 浮点算法的软件仿真的支持。即使是微型 8 位 MCU。您的目标是什么,您是否尝试过诱使编译器为您执行此操作?但是,您确实经常需要在编译器设置中显式启用它。
-
@doynax:此类库的问题是它们往往会使生成的固件膨胀。对于小型 MCU,这可以轻松地将二进制文件加倍。
-
函数定义有问题:函数应该取
sign, whole and hundredths。说“分数”并且只提供65给出分数的分子,但没有分母 - 当然,除非分母是隐含的 100。否则你如何编码75.01? -
char* float是什么意思? -
你不能为变量使用内置名称(你也不应该使用标准库名称)。