gpt4 book ai didi

char - ASCII 码的排序背后有什么逻辑吗?

转载 作者:行者123 更新时间:2023-12-03 07:08:06 24 4
gpt4 key购买 nike

我当时正在给学工程学的弟弟教 C。我正在向他解释不同的数据类型实际上是如何存储在内存中的。我向他解释了有符号/无符号数字和十进制 float 背后的逻辑。当我向他介绍 C 语言中的 char 类型时,我还向他介绍了 ASCII 代码系统以及 char 是如何存储为 1 字节数字的。

他问我为什么 'A' 被赋予 ASCII 代码 65 而不是其他任何东西?同样,为什么'a'被特别赋予代码97?为什么大写字母和小写字母的范围之间有6个ASCII码的差距?我不知道这一点。你能帮我理解这一点吗,因为这也让我产生了极大的好奇心。到目前为止,我还没有找到任何一本书讨论过这个主题。

这背后的原因是什么? ASCII 代码是否有逻辑组织?

最佳答案

有历史原因,主要是为了让ASCII码易于转换:

数字(0x30 到 0x39)的二进制前缀为 110000:

0 is 110000
1 is 110001
2 is 110010

等等。因此,如果您删除前缀(前两个“1”),您最终会得到二进制编码的十进制数字。

大写字母的二进制前缀为 1000000:

A is 1000001
B is 1000010
C is 1000011

等等。同样,如果删除前缀(第一个“1”),最终会得到字母索引字符(A 是 1,Z 是 26 等)。

小写字母的二进制前缀为 1100000:

a is 1100001
b is 1100010
c is 1100011

等等。与上面相同。因此,如果将 32 (100000) 添加到大写字母,则会得到小写版本。

关于char - ASCII 码的排序背后有什么逻辑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136156/

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