为啥 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 字节的表情符号?