关于python:oeasypython0018-ASCII字符分布数字大小写字母符号黑暗森林

36次阅读

共计 1750 个字符,预计需要花费 5 分钟才能阅读完成。

打包和解包

回顾上次内容

  • 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 两种状态
    • 而是长、短、暂停三种状态
  • 编码的准则是什么呢?

效率问题

  • 编码的规定是罕用的字符点击次数少

    • 依照字符呈现概率调配对应点击数量

      • TE 呈现频率最高
      • 所以用一次点击电键的数量
    • 实质上是一棵霍夫曼树
  • 过后发射和接管全靠人

    • 什么叫长、什么叫短、什么叫断
  • 发送者管制发报速度

    • 接收者跟着这个发报速度
    • 现查表是来不及的
    • 须要相熟

      • 摩斯电码码表
      • 罕用缩写
  • 这摩斯电码是 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
正文完
 0