LAOXU 发表于 2024-1-18 10:42:39

QQ624353765 发表于 2024-1-18 09:57
你硬件那么牛有什么用,软件不支持用都不用考虑硬件问题,直接没硬件什么事 ...

这个本身就是软件(程序)模拟实现的

LAOXU 发表于 2024-1-18 10:43:58

_奶咖君_ 发表于 2024-1-18 09:30
建议别搞非标,,,移殖很麻烦,,

不考虑移植(也没必要移植),本身 就是 51 专用

Snapdragon 发表于 2024-1-18 15:26:48

就算能在keil c51上实现,估计也只能封装成函数调用,没办法用“+-*/”直接运算。

冷月烟 发表于 2024-1-18 16:17:47

如果只是求精度可以考虑定浮点数,就是按整数存储,固定位置加上小数点

LAOXU 发表于 2024-1-19 07:53:19

冷月烟 发表于 2024-1-18 16:17
如果只是求精度可以考虑定浮点数,就是按整数存储,固定位置加上小数点

这是一种方法, 只是动态范围太小, 定点浮点数, 只适合于 加减, 不适合于 乘除 及 超越函数运算.

而所占资源省不了多少, 因此, 除了特殊用途, 几乎没通用性.

LAOXU 发表于 2024-1-26 08:10:29

最终考虑采用
方案1:
指数不变, 动态范围不变, 尾数增加 8位(1字节), 即尾数 24+8=32,
相当于有效值 9位十进制精度(达到 long 类型, 最大9位十进制精度, 速度快).
保持 和 原 C51单精度浮点数的高度兼容性, 为可重入函数.

方案2:
太占内存, 输入输出必须采用指针, 使用不方便.

LAOXU 发表于 2024-1-26 08:18:30

jmg 发表于 2024-1-18 04:35
This info may help those wanting 64bit (8 byte) support, SDCC added that in 2018.

February 26, 201 ...

Early single precision floating-point numbers in C51 were non reentrant (using simulation stacks), but later optimized to be reentrant (all other transcendental functions were non reentrant).



There are too few available registers in C51, and it is almost impossible to develop a concise reentrant double precision floating-point function library.

页: 1 [2]
查看完整版本: 讨论一下, C51 的单精度浮点数, 实际应用中, 精度是否够???