主页

今天面试遇到一个奇葩问题,让写出int类型的长度范围,数字那么大,瞬间懵逼,特此来总结一下,方便记忆
我们知道int类型占4个字节,1字节是bit,计算机存储单位是位,但是在2进制中,0001 = 1 = 2^1-1, 0011 = 3 = 2^2-1 ...,以此类推,计算结果=2^n次方-1,所以最大值 0111 1111 1111 1111 1111 1111 1111 1111 = 2^(32-1)-1 (这里再减去1是因为最高位32位标志位,不参与运算),最小值为-2^(32-1)-1,然后说一下中间值0,根据符号位的不同,有+0和-0的区别
+0: 00000000 00000000 00000000 00000000
-0: 10000000 00000000 00000000 00000000
由于0只能使用一个,本着不浪费的原则,用+0表示0,那-0就可以在最小的基础上再表示一个数值,所以对于有符号型,最小值可以是-(2^(32-1)-1)+1,所以int类型有符号型表示的范围就-2^到2^(32-1)-1

对应其他几种数据类型
tinyint 占1字节
smallint 占2字节
mediumint 占3字节
bigint 占8字节

参考:https://blog.csdn.net/weixin_43401380/article/details/121199473

版权属于:三分快乐,七纷幸福
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
0
查看目录

目录

来自 《mysql int类型长度介绍》
评论

三分快乐,七纷幸福
104 文章数
7 评论量
11 分类数
107 页面数
已在风雨中度过 2年246天19小时22分