mysql int为什么默认为11位

mysql int为什么默认为11位,第1张

您好,int(m),integer(m)

32位整数(4字节....)

其实这个m跟int能表示的范围没有关系,只要你选择了int,int是用4个字节表示,1个字节8位,若表示无符号数时可以表示的范围是

0

-------

232-1

,你可以存储任何在这个范围内的数字。

但也不是说跟表示完全没关系,mysql中有个zerofll,当建表时选择了0

填充之后存储就会有很大的不同,这时如果你选择的是int(4)

你存储12则数据库中存储的是0012,如果填写12345,此时超过了他的指定宽度则按原样存储。

int最大长度是11位。在32位的机器下,int的范围是 - 2 ^ 31 ~2 ^ 31 - 1 也就是:[-2147483648, 2147483647];在16位的机器下,int的范围为 -2 ^ 15 ~ 2 ^ 15-1。

也就是 :[-32768,32767];整型变量int的范围与计算机的字长有关,int 的长度是一个计算机字长。

int类型允许存储的字节数是4个字节,换算出int UNSIGNED(无符号)类型的能存储的最小值为0,最大值为4294967295(即4B=32b, 最大值即为32个1组成)。

扩展资料:

int型字长问题:

long int型至少应该和int型一样长,而int型至少应该和short int一样长。

1、C/C++规定int字长和机器字长相同;

2、 *** 作系统字长和机器字长未必一致;

3、编译器根据 *** 作系统字长来定义int字长;

在一些没有 *** 作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有 *** 作系统时, *** 作系统的字长与处理器的字长不一定一致,此时编译器根据 *** 作系统的字长来定义int字长:“比如在64位机器上运行DOS16系统。

那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上运行win32系统,那么所有for win32的C/C++编译器中int都是32位的”。(CPU的“字长”是指其一条指令/一次运算可以处理的数据的最大宽度。

对于整型的数值范围,每个编译器里面都有一个标准头文件:limits.h,这个头文件定义了一些宏,这些宏表示该编译器使用的所有数据类型的范围,编程过程中使用这些宏就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9889347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存