c - 不使用数学库的幂函数

标签 c floating-point microcontroller

我正在开发一个包含对浮点运算的访问的微 Controller 。

我需要使用幂函数。问题是,没有足够的内存来支持 pow 和 sqrt 函数。这是因为微 Controller 本身不支持 FP 操作,并产生大量指令来使用它们。我仍然可以乘除 float 。

架构:Freescale HCS12(16 位)

最佳答案

如果您提到架构,您可能会得到更具体的答案。

linux 内核仍然有旧的 x87 IEEE-754 数学仿真库,用于没有硬件浮点单元的 i386 和 i486 处理器,位于:arch/x86/math-emu/

网上有很多关于为 PIC 微处理器实现的浮点例程的资源,并且 AVR libc有一个浮点库 - 尽管它在 AVR 程序集中。

glibcsysdeps/ieee754 中实现了 pow 函数。显然,编译器必须使用硬件指令或仿真/函数调用来处理基本浮点运算。

关于c - 不使用数学库的幂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433668/

相关文章:

c - 这个简单的 If 语句有什么作用?

android - 将 C 代码文件合并为一个 C 代码文件

C++,如何优化浮点算术运算?

java - 浮点的奇怪行为

c++ - 数字小于机器精度的安全算术?

C++超时函数

c - 对指针的 "turn off"二进制数字进行位操作

C不能只循环一次

c++ - Arduino Sketch with multiple NeoPixels (功能采用不同的 NeoPixels)

embedded - PIC的十六进制反编译器