unsigned long mynum = 7;
if(mynum > -1) // false
Run Code Online (Sandbox Code Playgroud)
为什么会这样?是因为-1是一个int,当它被"提升"为unsigned long时,它得到unsigned long的最大值?
这可能不正确,但这就是我的想法:
当您执行以下代码时
unsigned long a = -8;
std::cout << a;
Run Code Online (Sandbox Code Playgroud)
由于无符号值不能低于 0,因此在本例中它将返回 unsigned long 的最大值 - 8 或 4294967288。
这就是-1当你的操作中的 转换为 unsigned long 时发生的情况
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |