gpt4 book ai didi

c - 将所有结果均为完整整数的十进制数相乘是否被视为 float 学?

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:48 27 4
gpt4 key购买 nike

抱歉这个冗长的标题。我的代码针对没有浮点单元的微 Controller (msp430),但这应该适用于任何类似的 MCU。

如果我将一个大的运行时变量与通常被认为是浮点十进制数 (1.8) 相乘,MCU 或编译器是否仍将其视为 float 学?

我的简化代码是:

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 或编译器而言,它仍然是 float 学,还是定点?

(我意识到我可以乘以 18,但这需要声明一个 32 位长而不是 16 位 int,然后对将要放入的数组进行除法和向下转型,试图在这里节省内存)

最佳答案

结果不是整数;它四舍五入为整数。

9375 * 1.8000000000000000444089209850062616169452667236328125

产量

16875.0000000000004163336342344337026588618755340576171875

舍入( double float )为 16875。

关于c - 将所有结果均为完整整数的十进制数相乘是否被视为 float 学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com