gpt4 book ai didi

NodeMCU 整数与浮点固件有何不同?

转载 作者:行者123 更新时间:2023-12-01 17:50:23 33 4
gpt4 key购买 nike

我问自己整数和浮点固件之间有什么区别以及如何处理它们。到目前为止我能找到的只是:

the integer version which supports only integer operations and the float version which contains support for floating point calculations

好的,到目前为止一切顺利,但这在现实生活中意味着什么?

当我计算时会发生什么

a = 3/2

对于 float 版本,我期望 a = 1.5对于整数版本,我期望 a = 1。或者是否等于 2 或者它会引发错误或崩溃或其他问题?我知道,我可以简单地刷新整数版本并尝试一下,但我也想讨论它在这里找到答案。 :)

还存在哪些其他限制/差异?我问的主要原因是:我尝试在整数版本上运行一些脚本,而没有任何我知道的浮点操作,并且某些功能根本不存在。对于 float 版本,它可以按预期工作。

更新:

这是产生意外结果的代码片段:

local duration = (now - eventStart)

对于整数固件,持续时间为 0。我猜这是因为现在 eventStart 对于整数来说太大了:

now: 1477651622514913
eventStart: 1477651619238587

所以我想说其他限制是整数版本仅支持 31 位值的整数运算,因为当我转换时

now = tonumber(now)

现在 = 2147483647,即 2^31 - 1

所以在整数固件中

1477651622514913 - 1477651619238587 = 0

相同
2147483647 - 2147483647

这显然是0

最佳答案

NodeMCU developer FAQ说:“整数构建具有更小的闪存占用空间并且执行速度更快,但在整数中工作也有许多陷阱”

您已经发现了 32 位有符号整数数字大小限制的一些缺陷。
不知道还有哪些其他模块,各个软件模块可能有自己的模块。

“较小”:通常在 custom 1.5.4.1final builds大约有 13kB 的差异总计 369-478kB

更快”:here is a comparison of integer and floating point operations ,如果您想运行自己的基准源,请使用基准源。总体而言:int 运算几乎快 8 倍。当 float 为整数时,差异可能会更小。

关于NodeMCU 整数与浮点固件有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290307/

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