为啥 tinyint 在 MySQL 中不能存储超过 255 的数字?

Posted

技术标签:

【中文标题】为啥 tinyint 在 MySQL 中不能存储超过 255 的数字?【英文标题】:Why can't tinyint store more than the number 255 in MySQL?为什么 tinyint 在 MySQL 中不能存储超过 255 的数字? 【发布时间】:2011-01-20 16:00:43 【问题描述】:

如果TINYINT可以存储三个字符,例如,为什么不能存储到数字999?

【问题讨论】:

其实最多可以存储255个,而不是256个,因为0也是一个值。此外,如果它已签名,您的范围将减少一半,这意味着您可以存储 -128 到 127。 谢谢布鲁诺!我已经更新了问题。 【参考方案1】:

因为它只需要8 位,因此只能编码2^8 = 256 值。

您在'123' 中看到的三个字符是二进制到十进制转换的结果。你不能在那里存储任意的3 字符。

【讨论】:

【参考方案2】:

它是8位,实际上可以存储最大值255。8位有256种可能的状态,包括零。

【讨论】:

以上是关于为啥 tinyint 在 MySQL 中不能存储超过 255 的数字?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MySQL 将布尔值解释为 TINYINT(1) 而不是 BIT(1)?

Navicat软件中mysql中intbigintsmallint和tinyint的区别布尔类型存储以及乱码问题的解决

为啥我不能在这个 mysql 字段中存储 4 字节的表情符号?

MySql数据库类型bit等与JAVA中的对应类型布尔类型怎么存

Msq 中tinyint字段对应 java中哪个类型?

为啥不能在 GHC 中强制超功能?