MySQL中int类型占用4个字节[byte(B)],1B有8个位[bit(b)],一个位(b)就代表一个0或者1,那么MySQL中int占用4B,对应位就是 4*8b = 32b 了,也就是说 int 表示的数字 个数 是: 2的32次方。
因为字节分有符号和无符号两种,于是 int 有符号 的 范围就是 -2的31次方 到 2的31次方减去1 [?1 为什么不是32次方?] [?2 为什么要减去1?],即 -2147483648 ~ 2147483647; int 无符号(unsigned) 的 范围就是 0 到 2的32次方减去1。
知道了 int 类型的范围后,我们再来看看长度是什么意思。 在MySQL手册中,字段类型的长度用 “M” 表示,表示最大显示宽度。 int 的 最大有效显示宽度是 255。 注意: 此处表示 显示宽度 和 存储大小或类型及范围 无关
参考:
1、 https://blog.csdn.net/weixin_33695082/article/details/92011222
MySQL中中的整数类型int主要有如下几种:
1、tinyint 的范围是-128~127;
2、int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节;
3、bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节;
4、smallint unsigned的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767;
5、smallint 的范围是 0 到 2^16 – 1,即 0 到 65535,存储的字节是2个字节。
扩展资料
int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道,字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位,也就是位(bit),一个位就代表一个0或1; 8个位组成一个字节;一般字节用大写B来表示byte,位用小写b来表示bit。
计算机存储单位的换算:
1B=8b
1KB=1024B
1MB=1024KB
那么根据int类型允许存储的字节数是4个字节,就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0,最大值为4294967295(即4B=32b,最大值即为32个1组成)。
不是,首先int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M)所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。1bytes占8字节,4bytes就是32位,而1字节不是0就是1,因此4bytes最高是11111111111111111111111111111111,而最高位的1代表负号,因此正数时最高位要用0,转化成十进制就是2,147,483,647,同理最小负数是-2,147,483,647,mysql默认int是有符号的,无符号时最大值是2^32
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)