????int 4字节,1字节=8bit.计算机存储单位是位.左边的最高位为正负数的标志位,0表示整数,1表示是负数. 首先是最大值为什么是2^31-1.看下面的推理: ????0001-----> 2^1-1=1 ????0011-----> 2^2-1=3 ????0111-----> 2^3-1=7 ????依次类推 公式:2^1的位数-1 ????0111 1111 1111 1111 1111 1111 1111 1111—> 2^31-1≈21亿(最高位32位标志位,不参与运算) 所以int从正数来讲是1—2^31-1 同理从负数来讲是(-1)---------[-(2^31-1)]. 然后说一下中间值0,根据符号位的不同,有+0和-0的区别 +0: 00000000 00000000 00000000 00000000 -0: 10000000 00000000 00000000 00000000 由于0只能使用一个,本着不浪费的原则,用+0表示0,那-0就可以在最小的基础上再表示一个数值,所以对于有符号型,最小值可以是-(2^31 -1)+1,所以int类型有符号型表示的范围就-2^31到 2^31-1. ????mysql中的int(N)表示数据的宽度,一般默认11,如果是11的话,有符号表示的范围就是int类型本身支持的数值范围大小:-2^31 到2^31-1.最大值:2147483648,总计11位
|