可以用内存正反补码解释一下吗,还有为什么改成第二个图就能运行处正的32768可以通过数据存储方面解释一下吗(正反补码
short是16位,其中第一位是符号位(0表示负数),其余位是1,即01111111 11111111 (32767),加1为10000000 00000000,第一位符号位为1(负号),负数补码非符号位取反加一就是他的值,即11111111 11111111 加1,就是-(32767+1)=-32768
32767是short型的最大值,如果加1就变成最高位是1,其余位都是0的二进制数据,对于short型来说就是负数了,而负数值就是-32768。负数是用补码形式存储的。
这涉及到了整形提升
我这篇文章你可以看一下
http://t.csdn.cn/mFnl6