gpt4 book ai didi

mysql - CHAR(n) 如何以二进制表示其数据?

转载 作者:行者123 更新时间:2023-11-29 10:06:26 27 4
gpt4 key购买 nike

我目前正在阅读 Robin Nixon 的学习 PHP、MySQL 和 JavaScript 书。特别是有关使用 MySQL 的数据库的章节。这是我正在努力彻底理解的主题。

“但是,年份字段具有更可预测的值,因此我们使用更高效的 CHAR(4) 数据类型来代替 VARCHAR。4 的参数允许 4 个字节的数据,支持从 –999 到9999;一个字节由 8 位组成,可以具有 00000000 到 11111111 的值,十进制为 0 到 255。”

在上面的示例中,CHAR(4) 设置为存储 4 个字符,表示四位数的年份条目。为什么-999到9999是唯一的选项。它如何以二进制表示仅限于这些值?我最初的思考过程是,由于 4 个字节是 32 位,如果所有 32 位都设置为 1,则 2^32 约为 40 亿无符号和约 20 亿有符号,这将是可以存储的数量。

我很感激任何解释。

最佳答案

您引用的书似乎建议使用 CHAR 来存储年份值,即使它不以二进制存储,但它存储数字字符。如果您使用字节来存储数字的二进制值,那么四个字节可以存储更大的范围,这是正确的。

令人惊讶的是,这本书关心的是编码 VARCHAR 长度所需的单个额外字节,然后它使用 CHAR 以如此低效的方式存储数字年份值。

这是一个“小事明智,大事愚蠢”的例子。

对这本书(或任何书)持保留态度。请记住,技术书籍是由人编写的,他们可能会犯错误。

关于mysql - CHAR(n) 如何以二进制表示其数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com