Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0296
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- decode
- 就是解码
- 解码和编码互为因果
- encode 编码
- decode 解码
- 互为
逆过程
- 大小写字母间
- 序号全都相差(
32)10进制 - 中间 还穿插着符号
- 为什么不都连在一起呢?🤔
- 序号全都相差(
- 大写字母 和 小写字母
- 总是相差(
32)10进制
- 总是相差(
- 从10进制角度
- 看不清楚
- 换到16进制再看
- (
32)10进制- 正好是(
0x20)16进制
- 正好是(
- 为什么 不多不少
- 就差 0x20 呢?
- 怎么那么
寸呢?🤔
- 再转化为2进制之后
- 恰好差1位(1-bit)
- 这是偶然的吗?
- ASCII码表 出现之前
- IBM 还统治着整个信息产业
- 当时 IBM 使用的编码是
- EBCDIC 编码
- 相差的并也不是 0x20
- 而是0x40
- 也相差一个2进制位
- 为什么
也是- 差一个二进制位呢?
-
大小写字符序号的二进制形态
- 差一位(bit)
- 有两个好处
- 更容易 转化
- 改一位就行了
- 更容易 查找
- 大小写不敏感的字符串匹配
- 就快多了
- 大小写不敏感的字符串匹配
- 更容易 转化
-
这个 0x20 发生在 1963 年 5 月
The X3.2.4 task group voted its approval for the change to ASCII at its May 1963 meeting.
Locating the lowercase letters in columns 6 and 7 caused the characters to differ in bit pattern from the upper case by a single bit, which simplified case-insensitive character matching and the construction of keyboards and printers.
- 当时的目的是
- 降低 打字机和键盘的 构造成本
- 降低 大小写不敏感字符串匹配的 难度
- 具体怎么就降低难度了呢?
- 如果搜的是小写字母
- 修改1位之后
- 小写就都变成大写
- 不用查找对应关系表匹配
- 然后再观察全大写的情况下是否匹配
- 修改1位之后
- 这就是大小写字母的情况
0x41-0x5A这个范围 是 大写字母0x61-0x7A这个范围 是 小写字母
- 除了大小写字母之外
- 数字字符又是如何表示的呢?
0x30-0x39这个范围是数字- 数字的编码减去
0x30正好得到数字本身 - 后四位刚好是BCD编码模式
- Binary-Coded Decimal
- 数字的编码减去
- 我们再来看看 ASCII 除了字母和数字还有什么?
- 各种符号是不连续的
- 黄色部分
- 穿插在数字、字母周围
- sp 其实就是space(空格)
- 感觉整个ascii表
- 都清晰很多了呢!
- 表格最左边两列
- 是什么呢?
0x20-0x7F之间- 有各种真实字符
0x00-0x1F之间的东西是什么?- 这两列 含义都是对应 多个字符的
- 具体含义目前大多还不知道
- 仿佛一片黑暗
- 再看看字符部分
- 红色的大写字母
- 蓝色的小写字母
- 这些大小写字母
- 本来英语里就有
- 但是 怎么就编码
- 进入计算机了呢?
- ASCII码 是由
- 电报代码发展 而来的
- 由 贝尔数据服务公司 推广
- 电报码 用的是
摩斯电码
- 摩斯电码 也是数字编码
- 分成 长和短 两种信号
- 就是嘀和嗒
- 下图 是他的编码表
- 分成 长和短 两种信号
-
《oeasy 教您玩转电路基础》第 18 话 里面有介绍
-
还记得encode/decode中的
code么?- 曾经 指的就是 各种电报编码 汇编
- 后来电报编码统一 到 摩斯电码
-
这就是 字符
最初电子化的过程
- 下图是他的通信规则
- 三个断 确认本字符 结束了
- 就是字符之间的分隔符
- 三个断 确认本字符 结束了
- 录入状态使用 高低
- 两种电平
- 表现出长、短、断
- 三种状态
- 编码的原则是什么呢?
- 编码的规则 是 常用的字符
- 点击次数少
- 按照字符出现概率分配对应点击数量
T、E最常用- 按一下 就出来
- 编码原则
- 是 一棵霍夫曼树
- 26个字符是不连续的
- 是 一棵霍夫曼树
- 当时 发送和接收 全靠人
- 什么叫长、什么叫短、什么叫断
- 发送者 控制 发报速度
- 接收者 跟着 这个发报速度
- 现查表 是 来不及的
- 需要熟悉
- 摩斯电码码表
- 常用缩写
- 接收者 跟着 这个发报速度
- 摩斯电码是怎么
- 变成 ascii这种0101的二进制编码 的呢?
- 上次 我们了解了
ASCII码表ASCII码表就是AmericanStandardCode forInformationInterchange
- 美国 信息交换 标准代码
- ASCII 码表范围
48-57这个范围是数字65-90这个范围是大写字母97-122这个范围是小写字母
- 知道了这个范围之后
- 可以玩点什么吗??🤔
- 下次再说👋🏻
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。















