假设没有浮点运算的低端微处理器,我需要生成一个IEE754单精度浮点格式编号以推送到文件中。
我需要编写一个函数,该函数使用三个整数作为符号,整数和分数,并返回一个字节数组,其中4字节为IEEE 754单精度表示形式。
就像是:
// Convert 75.65 to 4 byte IEEE 754 single precision representation
char* float = convert(0, 75, 65);
请问有人有任何指针或示例C代码吗?我特别想了解如何转换尾数。
最佳答案
您将需要生成符号(1位),指数(8位,2的有偏幂)和分数/尾数(23位)。
请记住,小数具有隐式的前导“ 1”位,这意味着最高有效的前导“ 1”位(2 ^ 22)未以IEEE格式存储。例如,给定的分数为0x755555(24位),实际存储的位将为0x355555(23位)。
还请记住,小数部分已移位,因此二进制点立即位于隐式前导“ 1”位的右侧。因此,IEEE 23位小数11 0101 0101 ...表示24位二进制小数1.11 0101 0101 ...
这意味着必须相应地调整指数。
关于c - 如何仅使用整数算法生成IEEE 754单精度浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30784670/