我正在开发一个包含对浮点运算的访问的微 Controller 。
我需要使用幂函数。问题是,没有足够的内存来支持 pow 和 sqrt 函数。这是因为微 Controller 本身不支持 FP 操作,并产生大量指令来使用它们。我仍然可以乘除 float 。
架构:Freescale HCS12(16 位)
最佳答案
如果您提到架构,您可能会得到更具体的答案。
linux 内核仍然有旧的 x87 IEEE-754 数学仿真库,用于没有硬件浮点单元的 i386 和 i486 处理器,位于:arch/x86/math-emu/
网上有很多关于为 PIC 微处理器实现的浮点例程的资源,并且 AVR libc有一个浮点库 - 尽管它在 AVR 程序集中。
glibc在 sysdeps/ieee754
中实现了 pow
函数。显然,编译器必须使用硬件指令或仿真/函数调用来处理基本浮点运算。
关于c - 不使用数学库的幂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433668/