打包和解包
回顾上次内容
-
decode
- 就是解码
-
解码和编码能够转化
- encode 编码
- decode 解码
- 互为逆过程
- 大小写字母之间序号全都相差(
32
)10 进制
- 这是为什么呢?🤔
差距
-
大写字母和小写字母
- 总是相差(
32
)10 进制
- 总是相差(
- 从 10 进制角度看不清楚
- 咱们从 16 进制的角度看看
16 进制
- 正好是(
0x20
)16 进制
-
为什么不多不少
- 就差 0x20 呢?
- 怎么那么寸呢?🤔
-
转化为 2 进制之后
- 恰好是 1 位(bit)
- 这是偶尔的吗?
ASCII 码表趣事
-
其实最后相差的并不是 0x20
- 之前 ibm 的 EBCDIC 编码也是这样的
- 也相差一个 2 进制位
-
EBCDIC 问题是字母不间断
- i、j 之间不间接相连
- EBCDIC 最终被 ascii 所淘汰
ASCII
-
ASCII 字母是间断的
- 而且大小写字母间
- 相差正好是 1 个 二进制位
- 对应 b6 这个位
- 那为什么要差 1 个 二进制位 呢?
-
有了这种对应关系之后
- 做大小写不敏感的字符串查找就快多了
-
这个 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 位之后
- 小写就都变成大写
- 不必查找对应关系表匹配
- 而后再察看全大写的状况下是否匹配
-
-
这就是大小写字母的状况
0x41-0x5A
这个范畴是大写字母0x61-0x7A
这个范畴是小写字母
-
除了大小写字母之外
- 数字字符又是如何示意的呢?
ASCII 码表范畴
-
0x30-0x39
这个范畴是数字- 数字的编码减去
0x30
正好失去数字自身 -
后四位刚好是 BCD 编码模式
- Binary-Coded Decimal
- 数字的编码减去
- 咱们再来看看 ASCII 除了字母和数字还有什么?
各种符号
- 各种符号是不间断的
-
穿插在数字、字母四周
- sp 其实就是 space(空格)
- 表格最右边是什么呢?
ASCII
0x20-0x7F
之间有各种实在字符
-
0x00-0x1F
之间的货色是什么?-
前两列都是对应多个字符的
- 具体含意目前还不晓得
-
-
ASCII 中的字符原本英语里就有
-
然而字符是英文字符、数字和标点
- 怎么编码的呢?
-
ASCII 由来
- ASCII 码是由电报代码倒退而来的
- 由贝尔数据服务公司推广
- 电报码不是摩斯电码吗?
摩斯电码
- 更早之前的确是摩斯电码
-
下图是他的编码表
- 分成长和短两种信号,就是嘀和嗒
-
《oeasy 教您玩转电路根底》第 18 话 外面有介绍
- 欢迎您有机会来看看 oeasy 电学、科学史那几个系列
-
还记得 encode/decode 中的 code 么?
- 已经一度指的就是各种电报编码汇编
- 起初对立到摩斯电码
摩斯电码通信规定
-
下图是他的通信规定
- 三个断确认本字符完结了
- 三个断就是字符之间的分隔符
- 录入状态并不是 0、1 两种状态
- 而是长、短、暂停三种状态
- 编码的准则是什么呢?
效率问题
-
编码的规定是罕用的字符点击次数少
-
依照字符呈现概率调配对应点击数量
T
、E
呈现频率最高- 所以用一次点击电键的数量
- 实质上是一棵霍夫曼树
-
-
过后发射和接管全靠人
- 什么叫长、什么叫短、什么叫断
-
发送者管制发报速度
- 接收者跟着这个发报速度
- 现查表是来不及的
-
须要相熟
- 摩斯电码码表
- 罕用缩写
- 这摩斯电码是 3 进制的编码方式
- 怎么变成 ascii 这种 0101 的二进制编码的呢?
总结
-
ASCII 由这样几类字符形成
- 英文大写字符
- 英文小写字符
- 数字
- 符号
-
电报时代对于英文、数字的编码
- 应用的是摩斯电码
-
这摩斯电码是 3 进制的编码方式
- 长短空
- 怎么演化成 ascii 这种 0101 的二进制编码的呢?🤔
- 下次再说👋🏻
- 蓝桥 ->https://www.lanqiao.cn/teache…
- github->https://github.com/overmind19…
- gitee->https://gitee.com/overmind198…
- 视频 ->https://www.bilibili.com/vide… 作者:oeasy