AFP*_*AFP 0 c++ gcc casting visual-studio
我正在尝试使用以下 C++ 代码将 a 类型转换float为:unsigned char
#include <iostream>
int main()
{
std::cout << int((unsigned char)((float)-10)) << "\n";
std::cout << int((unsigned char)((float)300)) << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
海湾合作委员会 12.1 输出:
0
255
Run Code Online (Sandbox Code Playgroud)
可以在这里尝试。它将值很好地限制为0和255,这就是我期望在任何操作系统中得到的结果。但是,当我在 Visual Studio 2022 中尝试相同的代码时,就会出现问题,可以在此处尝试。
Visual Studio 输出
246
44
Run Code Online (Sandbox Code Playgroud)
在我看来,246实际上是256-10,第二个输出44是300-256。我可以知道为什么 Visual Studio 会产生不同的结果吗?
如何让这个简单的跨平台转换?
n. *_* m. 10
浮点积分转换 [conv.fpint]
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |