相关疑难解决方法(0)

如果我为无符号变量赋值为负值会怎样?

我很想知道如果我给无符号变量赋一个负值会发生什么.

代码看起来有点像这样.

unsigned int nVal = 0;
nVal = -5;
Run Code Online (Sandbox Code Playgroud)

它没有给我任何编译器错误.当我运行程序时,nVal分配了一个奇怪的值!是否可以将某个2的补码值分配给nVal

c++ unsigned signed integer type-conversion

73
推荐指数
3
解决办法
8万
查看次数

为什么(18446744073709551615 == -1)是真的?

当我在工作时,string::npos我注意到了一些东西,我在网上找不到任何解释.

(string::npos == ULONG_MAX)
Run Code Online (Sandbox Code Playgroud)

(string::npos == -1)
Run Code Online (Sandbox Code Playgroud)

是真的.

所以我尝试了这个:

(18446744073709551615 == -1)
Run Code Online (Sandbox Code Playgroud)

这也是事实.

怎么可能?是因为二元对话吗?

c++ unsigned signed equality integer-overflow

12
推荐指数
2
解决办法
1万
查看次数