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

该代码将看起来像这样。

unsigned int nVal = 0;
nVal = -5;

它没有给我任何编译器错误。当我运行程序时,nVal被分配了一个奇怪的值!可能是某些2的补码值分配给nVal吗?

最佳答案

官方答案-4.7节conv.integral



从本质上讲,这意味着,如果基础体系结构存储的方法不是Two's Complement(如符号幅度或One's Complement),则到无符号的转换必须表现为好像是Two's Complement。

09-10 04:39
查看更多