展开写一下导游两天前看到的问题吧。
字节知道计算机是基于二进制的。 的基本单位为Bit,其也可被称为比特,二进制位。 1比特可以表示0或1这两个数字,是可能存在的最小信息量,小于1比特的内容不能称为信息。
复杂的内容必须用多比特来表示。Byte也称为字节,通常用作测量单位。 1字节是8比特。 也就是说,1 byte可以表示28个内容。
就MySQL字节而言,MySQL的整数类型分为unsigned和signed两种。 也就是说,没有符号和有符号。 具体内容在这里不展开。 tinyint的大小为1 byte,可以用signed类型表示的数字以下表为例。 (注:表已根据《编码》进行了修改。 只是提供了一个示例,并不代表MySQL的实际存储。)
二进制数100000000-12810000000001-1271000000010-126100000011-125 . 111111101-31111111111110-100000000000001111111110000000000000000011111111111111111111111111111111111111 0-21110000 111111012601111111111127 int的最大值如上表所示,开头的bit表示符号,因此在sigend中以少1位的bit存储内容。 int为4 byte,与上述相结合,int在signed下的最大值为
$$ 2^{31}-1=2147483647 $$
因为unsigned不需要开头的bit表示符号
$$ 2^{32}-1=4294967295 $$
参考资料:二进制、比特、字节、补码。