【发布时间】:2013-09-17 23:45:36
【问题描述】:
抱歉标题冗长。我的代码针对的是没有浮点单元的微控制器 (msp430),但这应该适用于任何类似的 MCU。
如果我将一个大的运行时变量与通常被认为是浮点十进制数 (1.8) 相乘,这是否仍被 MCU 或编译器视为浮点数学?
我的简化代码是:
int multip = 0xf; // Can be from 0-15, not available at compile time
int holder = multip * 625; // 0 - 9375
holder = holder * 1.8; // 0 - 16875`
由于结果总是一个正的实整数,就 MCU 或编译器而言,它仍然是浮点数学,还是定点?
(我意识到我可以乘以 18,但这需要声明一个 32 位长而不是 16 位 int,然后对将要放入的数组进行除法和向下转换,试图在此处节省内存)
【问题讨论】:
-
当你说“浮点数”时,你是指IEEE-754 variety吗?
-
根据我的经验,大多数编译器将 1.8 视为浮点数,即使您的芯片上没有浮点单元。但是浮点数的运算比整数的运算成本高得多。所以这取决于你的要求。
-
为什么积极性很重要?
-
@user2357112 已修复。表示完整的整数。
-
@RobertHarvey 我会这么认为
标签: c floating-point fixed-point