假设int型用两个字节表示
对于有符号的整数,用补码表示的话,最高位是符号位,后面15位用来表示数据.
1.正数,表示的范围为0000 0000 0000 0001-0111 1111 1111 1111,最高位是符号位,不能用于表示数据,所以正数的数值范围为1~32767.
2.0:0000 0000 0000 0000
3.负数,负数的补码是原码取反加1,CPU的加减法运算,是循环进行加减的,即当其由0000 0000 0000 0000加到1111 1111 1111 1111时,如果再加1,就又会为0000 0000 0000 0000了,此时溢出寄存器会置位.而当其由0000 0000 0000 0001减1,即为0000 0000 0000 0000,如果再减1,就会为1111 1111 1111 1111,这就是-1。那么,从0000 0000 0000 0000可以减到什么时候呢?当然是不能与正数的补码重合的,所以可以从1111 1111 1111 1111~1000 0000 0000 0000,即从-1到-32768.
所以,数值范围是-32768~32767.