------------------
这个事,和 C 语言没有任何关系。
因为,计算机本身,它就是“用补码存储正负数字”。
C 语言的程序,在计算机中运行,也就必须“用补码存储正负数”。
而且,无论你用任何编程语言编写程序,负数,都是用补码存放的。
你的理解是对的。
最高位为1时,对于有符号来说,这个数是负数,而对于无符号数而言,由于最高位也是有效存储位,所以可以存储更大范围的数。
话再说回来,既然是无符号数,输出格式应该是"%u",而不是"%d",这样才能做到“表里如一”,“改头换面”只会乱了自己,这不是游戏,严谨是必须的。