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位
int的取值范围为什么是从-2^31到2^31-1以及mysql中int(N)
最新推荐文章于 2023-05-26 21:23:42 发布