整数与浮动之间的数学操作在32位系统中

  • 本文关键字:操作 32位 系统 之间 整数 c
  • 更新时间 :
  • 英文 :


在32位系统上,我发现下面的操作始终在A&lt时返回正确的值;2^31,但在较大的情况下返回随机结果。

uint64_t a = 14227959735;
uint64_t b = 32768;
float c = 256.0;
uint64_t d = a - b/ c; // d returns 14227959808

我相信这里的问题是int to-loploat操作返回不确定的行为,但是有人可以帮助解释为什么它给出了这样的价值?

整个计算都流向浮点,然后将其施放到64位整数。但是浮子不能准确地表示大整数,除非它们恰好是两个的力量。

最新更新