[oeasy]python0013_ASCII码表_英文字符编码_键盘字符
ASCII 码表
回忆上次内容
ord(c)
和chr(i)
ord
通过字符
找到对应的数字
chr
通过数字
找到对应的字符
这是俩函数
这俩函数是一对,相反相成的⚖️
字符
的本质是数字
字符都对应着一些数字
a
对应 97b
对应 98c
对应 99都连号好像应该是天经地义的?
为什么小写a从97开始?
但除了小写字母之外还有很多字符
他们都是如何分布的呢?🤔
小写字母
a、b、c 这些字符是挨着的
正好从0到25,总共26个🔢
对应数字也是挨着的

编码规律
从 a-z 应该都是挨着的
26 个英文字母
为什么是从 97 开始?
应该还有别的字符
低头看一下键盘

除了小写字母之外
大写字母
数字
符号
大概有多少个字符呢?
字符全排列
每一个字符都会对应一个序号
序号用二进制的方式存在字节(byte)中
一个字节(byte)总有8位(bit)
每一位(bit)是一个二进制(binary)数字(digit)

从
8个0
到8个1
相当于从
0
到255

我想要
把所有可能的序号对应的字符都数一遍
可行么?
遍历范围
for i in range(2 ** 8): print(i,end=",")遍历范围是[0, 28)
也就是[0, 256)
前闭后开
不包含256

我们先把 从0到255 挨排儿捋一遍

如何通过序号找到对应的字符呢?
对应的字符
通过数字找到对应的字符是chr
print(chr(n),end="")
结束时什么也不输出
不输出默认的换行
输出n的字符状态
chr(n)
end=""
if n % 16 == 0:
print()
如果n能被16整除
那么输出换行

结果如何呢?
结果

字母和数字还是挺完整的
这套对应关系有没有个名字呢?
ASCII 码表
当时美国的工程师定义了一套编码规则
A
mericanS
tandardC
ode forI
nformationI
nterchangeASCII
美国信息交换标准代码

这建立起了
字符
和二进制01
的映射关系
面对同一个二进制数 01010101
就会映射到不同的字符
人们看到不同的字符就认为是乱码
字符
和二进制数
的映射关系
如果不一致这套ascii标准在各种计算机系统中需要统一
否则无法通信
这个 ASCII 什么时候开始有的呢?
初现
1967 年的时候就有了最初这个 ASCII 码表🔡
低电平表示 0
高电平表示 1
电子计算机中所有的数据都是 0 和 1
当时计算机

先是由美国国家标准学会制定
(American National Standard Institute , ANSI )
最初是美国的国家标准
被称作美国信息交换标准代码
美国之外的国家如何编码基本字符呢?
国际化
后来是国际标准化组织定为国际标准ISO
International Organization for Standardization a.k.a. ISO
称为 ISO 646 标准

最后一次更新则是在 1986 年
到目前为止共定义了 128 个字符
能否完整系统地看到整个ascii码表的对应关系呢?
ascii
我们先来下个ascii程序
上面的命令可以安装ascii这个应用

使用ascii
每一字符有三个部分组成
Dec 对应的是 10 进制数
Hex 对应的是 16 进制数
最后一列 对应的是 具体字符或功能

字符包括
控制
符号
英文大写字母
英文小写字母
这样就把各种字符和一个二进制数字对应起来了
解码 ASCII
我们找到小写的
a
8位2进制数
也就是8位(0或者1)
这个小写的
a
在电脑中存储的时候对应着一个字节
到底是多少呢?
先沿着下图中1的方向
向上找到
110
这是他的高三位
765
位

再沿着2的方向
在前面加一个
0
得到(
01100001
)2进制
向左找到
0001
这是他的低四位
4321
位
总结
这次我们了解了
ASCII
码表A
mericanS
tandardC
ode forI
nformationI
nterchangeASCII
码表就是美国信息交换标准代码
ASCII 码表范围
数字的编码减去
0x30
正好得到数字本身0x30-0x39
这个范围是数字
0x41-0x5A
这个范围是大
写字母0x61-0x7A
这个范围是小
写字母0x20-0x7F
之间各处零散排布着各种符号

字符在计算机当中是用二进制方式存储的
我们现在可以得到字符的序号
但是能通过字符序号
得到字符的二进制形态么?🤔
我们下次再说👋
蓝桥->https://www.lanqiao.cn/teacher/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy