quote:以下是引用萧⑨郎在2013-03-09 10:25:47的发言:众所周知,INT数据类型的范围为:-32768~+32767,如下图:

但是在实际监控中却发现INT数据类型的变量的值超出此范围,见下图:

如何理解呢?
按INT数据类型最高位为符号位的说明,那1的数据如下:

那-1就应该是把1的最高位变为1啊,如下图:

但是,实际上图的值为+32769。
如何理解呢?
65535(十进制)=FFFF(十六进制)
FFFF(十六进制)=-1(十进制)
65535(十进制)=-1(十进制)???
如何理解呢?
求高手解惑。谢谢。
"那-1就应该是把1的最高位变为1啊“是错误的,LZ基本概念不清,1的二进制数取反加1得到16#FFFF,就是-1的补码。65535与程序状态的显示格式(十进制)有关。