【发布时间】:2011-01-30 05:47:48
【问题描述】:
试试看:
volatile float bob = -344.0f;
unsigned int fred = (unsigned int)bob;
printf("%d\n",fred);
输出将为 0。
显然,我希望它能够环绕,就像我从一个有符号的 int 转换为一个无符号的 int 一样(它确实在 iphone 上按预期进行环绕和运行)
我们假设它与浮点设置有关。
有什么想法吗?
【问题讨论】:
-
@KennyTM:一些随机尝试阻止它优化内容。
-
旧线程,但我最近碰到了一些关于此的更多细节。在 XCode 7.2.x 中,将负浮点数转换为无符号短整数会在所有测试的 iOS 平台上产生一个环绕值。但是,对于 XCode 7.3.1,相同的代码会在 iPad 3 上导致截断为零并在 iPhone 6 上回绕。
标签: c iphone casting floating-point type-conversion