MySQL数据类型 - 整型
2025-08-23 04:09:44整型类如表所示,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-1unsigned Tinyint4B0 ~ 2^81、占用的比特位数量
两者都是占用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”,因此负数部分比正数部分多一个数字。