mysql设置整数范围_详解Mysql的整数类型的范围

MySQL支持多种数据类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。其中, 整数类型包括:TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。

下表显示了整数类型的存储和范围。

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 字节

(-128,127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3字节

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT

4 字节

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 字节

(-9 233 372 036 854 775 808,

9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

超大整数值

本文将以tinyint为例,详细解释它的大小和范围。  tinyint的大小为1字节,即8位二进制。

在无符号的情况下,值得范围(0,255)比较容易理解,

二进制

十进制

0000 0000

0

1111 1111

255

在有符号的情况下,用最高位表示符号位,其中 0表示正数,1表示负数。先来看正数范围(0,127):

二进制

十进制

0 0000000

0

0 1111111

127

接下来看负数的情况,下面的理解很直观,但必须注意:这种理解是错的!稍后会解释原因。

1 0000000    -------------->     -0

1 1111111       -------------> -127

也许你会说,首位是1,表示负数。后面7位表示数值,将数值乘以符号就得到了负数,多么完美又直观的表示!

可是,你应该也已经发现了,在这种表示方式下,能够表示的最小负数为-127,0就被分为 +0和-0两种编码方法,这完全是浪费的。为了避免这种浪费,计算机科学家们设计出了另外一套负数的编码方式,即补码。

在补码表示方式下,0只有一种表示,而且能够表示的最小负数为-128。

二进制

十进制

1 0000000

-128

1 1111111

-1

所以,在有符号的情况下,tinyint的表示范围为(-128,127)。

同理,可以分析其他整数类型在有符号和无符号情况下,能够表示的数值范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值