MySQL数据类型 - 整型

整型类如表所示,int、tinyint是使用最多的整型类型。

类型大小范围(有符号)范围(无符号)用途
Tinyint1字节-128 ~ 1270 ~ 255小整数值
Smallint2字节-32,768 ~ 32,7670 ~ 65,535大整数值
Mediumint3字节-8,388,608 ~ 8,388,6070 ~ 16777215大整数值
Int4字节-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295大整数值
Bigint8字节-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8070 ~ 18,446,744,073,709,551,616极大整数值

Tinyint 1字节如何计算得出范围(有符号):-128 ~ 127,范围(无符号):0 ~ 255呢?

类型名称占字节数取值范围
Tinyint1B-2^7 ~ 2^7-1
unsigned Tinyint4B0 ~ 2^8

1、占用的比特位数量
  两者都是占用1个字节,每个字节有8个比特位,因此有8个0或1的二进制位数。两者的不同在于Tinyint有符号位(+、-),需要比unsigned Tinyint多消耗一个位数。

2、符号的表示方法
  在所有被tinyint占用的比特位中,左起的第一位是符号位。tinyint类型的符号位上,0表示正数,1表示负数,其余后的7位是数值位。

3、数字0的表示方法
  按照上面提到的符号表示方法,有2种符号表示方法“+0”和“-0”。实际上计算机已经强行规定了这种情况,数字0用“+0”表示,即0000 0000,而“-0”这个特殊的数字被“-2^7”表示。
  因此在tinyint取值范围中,负数部分比正数部分多了一个数字,正数的最大取值为2^7-1,负数的最小取值为-2 ^ 7。正数部分之所以要减去1,是因为被数字0占用了,而负数部分不需要用来表示0,因此原本的“-0”就用来表示“-2 ^ 7”。

十进制二进制
+00 000 0000
+1270 111 1111
-01 000 0000
-1271 111 1111

“-0”被占用来表示“-128”,因此负数部分比正数部分多一个数字。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值