是否有ASCII码背后的订货任何逻辑?(Is there any logic behind ASCI

2019-06-26 02:26发布

我在教学中C到我的弟弟学习工程学。 我解释了他不同的数据类型实际上是如何存储在内存中。 我解释了他的身后物流十进制数已签署/无符号数和浮点位。 当我告诉他char类型在C,我也把他通过ASCII代码系统和焦炭也怎么也存储为1个字节数。

他问我为什么“A”已经给出了ASCII码65,而不是别的什么吗? 同样为什么“a”是给代码97特别? 为什么有6个ASCII码大写字母和小写字母的范围之间的差距? 我没有这方面的想法。 你能帮助我理解这一点,因为这产生了很大的好奇我也。 我从来没有发现任何一本书至今已经讨论过这个话题。

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

Answer 1:

有历史的原因,主要是为了使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)以一个大写字母,你有小写版本。



Answer 2:

该图表显示它很好从维基百科:注意的下部上2控制2的两列,然后用间隙杂项填充。

的同时也要记住的是ASCII是基于什么之前已经通过开发。 有关ASCII历史的更多细节,请参见由汤姆·詹宁斯这一高超的文章 ,其中还包括一些陌生人控制字符的含义和用法。



Answer 3:

这里是非常详细的病史和ASCII码描述: http://en.wikipedia.org/wiki/ASCII
简而言之:

  • ASCII是基于电传编码标准
  • 前30个字符是“非打印” - 用于文本格式
  • 然后他们继续打印字符,大致以它们被放置在键盘上。 检查你的键盘:
    • 空间,
    • 在数字大写标志帽!”,#,...,
    • 数字
    • 症状通常放置在键盘一行数结束 - 大写
    • 大写字母,字母
    • 症状通常放置在与字母键盘的行结束 - 大写
    • 小写字母,字母
    • 症状通常放置在与字母键盘的行结束 - 小写


Answer 4:

之间的距离Aa为32。这是相当回合数,不是吗?

的大写字母和小写字母之间6个字符的间隙是因为(32 - 26)= 6。(注:有英语字母表中26个字母)。



Answer 5:

如果你看的“a”和“A”的二进制表示,你会看到,他们只有1位,这是(转大写小写或反之亦然非常有用的不同仅仅是一个翻转的事位)。 为什么专门从那里开始,我不知道。



Answer 6:

  • “A”是在十六进制的0x41。
  • “a”是在十六进制0x61。
  • '0' 通 '9' 是的0x30 - 以十六进制0x39。

所以,至少它很容易记住的数字Aa0-9 。 我不知道这些符号的想法。 请参见上ASCII订购维基百科的文章 。



Answer 7:

维基百科 :

代码本身构造,使得大多数控制码在一起,和所有图形码在一起。 前两列(32个位置)被保留用于控制字符。[14] “空格”字符有前来图形前进行排序算法容易,所以它成为位置为0x20。[15] 该委员会决定支持上壳体64个字符的字母,并选择到结构ASCII,以便它可以容易地降低到一个可用的64的字符集的图形码是重要的。[16] 小写字母,故未以大写字母交错。 为了保持选项开放的小写字母和其他图形,特殊和数字代码放置在字母前,和字母“A”被放置在位置的0x41到相应的英国标准草案相匹配。[17] 数字0-9置于所以它们对应于与前缀011中的二进制值,使得转化率随二进制编码的十进制简单。



文章来源: Is there any logic behind ASCII codes' ordering?
标签: char ascii