gpt4 book ai didi

c - iphone:如果 float 为负数,则转换为无符号整数的 float 将设置为 0?

转载 作者:行者123 更新时间:2023-12-03 18:34:53 25 4
gpt4 key购买 nike

尝试一下:

volatile float bob = -344.0f;
unsigned int fred = (unsigned int)bob;

printf("%d\n",fred);

输出将为 0。

显然,我希望它能够回绕,就像我从一个signed int 转换为一个unsgined int 一样(它确实在iphone 上回绕并按预期运行)

我们假设这与浮点设置有关。

有什么想法吗?

最佳答案

这是预料之中的 - 将负 float 转换为无符号整数会导致未定义的行为 (UB)。如果您希望该值环绕(这也是 UB,顺便说一句),那么您需要先转换为(有符号)int,然后再转换为无符号 int。理想情况下,您根本不应该依赖 UB,而是找到更好的方法来完成您需要做的事情。

关于c - iphone:如果 float 为负数,则转换为无符号整数的 float 将设置为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490600/

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