我很想知道如果我给一个无符号变量赋一个负值会发生什么。
该代码将看起来像这样。
unsigned int nVal = 0;
nVal = -5;
它没有给我任何编译器错误。当我运行程序时,
nVal
被分配了一个奇怪的值!可能是某些2的补码值分配给nVal
吗? 最佳答案
官方答案-4.7节conv.integral
从本质上讲,这意味着,如果基础体系结构存储的方法不是Two's Complement(如符号幅度或One's Complement),则到无符号的转换必须表现为好像是Two's Complement。