补码疑问-32768在内存中的二进制数表示为1000 0000 0000 0000,这实际上为补码,根据补码求不出十进制数,只有把它变成原码才行。求补码的原码只有对其本身求补,符号位不动后面取反加1后得到:0000 0000 0000 0000,这就怪了,这个数按权展开后并没有得到-32768,怎么回事?[解决办法]楼主的意思是什么?你要用short int(16位)的话,范围是:-32768~32767,如你所说,后16位全零,有溢出,由于是恰好(+1)溢出,所以回到最小数-32768