Skip to content

Latest commit

 

History

History
200 lines (132 loc) · 4.23 KB

282-564947-编码_encode_编号_字节_计算机.sy.md

File metadata and controls

200 lines (132 loc) · 4.23 KB
show version enable_checker
step
1.0
true

编码(encode)

回忆上次内容

  • code就是码
    • 最早也指电报码
    • 后来有各种码
      • 密码
      • 砝码
      • 条码
    • 都指的是
      • 给各种事物编个号
        • 数字化
  • encode就是编码
    • 编码就是给事物编个号

图片描述

  • 具体怎么用python进行编码呢?🤔

python编解码

  • 将 字符a 编码(encode)
  • str(字符串)'a' encode(编码)之后
    • 得到 b'a'
  • b'a' 的 类型是
    • bytes

图片描述

  • bytes是什么意思呢?
    • help(bytes)

bytes

  • byte 是 字节

图片描述

  • bytes 就是 字节序列

字节的十六进制形态

图片描述

  • b'a' 就是 b'\x61'

图片描述

含义

  • 其中
    • b 的意思是bytes(字节序列)
    • x 的意思是 hexadecimal(十六进制)

图片描述

  • 这个encode和hex 有点像

帮助手册

  • 想要查询encode的帮助
  • 需要先判断类型
help(str.encode)
  • 查询帮助
  • encode函数
    • 将字符串使用编码格式
      • 编码为字节序列

图片描述

  • 可以把 多字符的字符串
    • 编码为 多个字节的字节序列 吗?

多字符编码

  • 确实可以多字符编码

图片描述

  • 这些编码规则叫什么来着?

ascii

  • 回忆安装ascii应用的过程
    • sudo apt install ascii

图片描述

  • 从 a 到 e

    • 确实就是
      • 从 0x61 到 0x65
  • 如果很多字符编码到字节

    • 会是什么样子呢?

安徒生童话

  • 就是纯文本文件
    • 318K个字符

图片描述

  • 对应318K个字节
    • 将每个字符都编码(encode)为字节了
  • 一个字节8-bit
    • 恰好是2个十六进制数
      • hexadecimal

hex

  • 查询帮助
    • help(hex)

图片描述

  • hex可以把任意的数字
    • 变成 十六进制的 字符串形式
  • 如果 数字小于255
    • 确实可以转化成
      • 2位16进制的形态
        • 放在一个字节中存储
  • 但是 hex返回值类型 不是 字节
    • 而是 十六进制的字符串形态

图片描述

  • 而str.encode返回的是
    • 字节类型

图片描述

  • hex函数 和 encode函数
    • 两者 有关联 吗?

关联

  • hex和encode
    • 确实 是 关联的
    • 字符序号的十六进制形态
      • 恰好就是
        • 字符 在字节中存储的样子

图片描述

  • 字符"a"序号

    • 十六进制形态
      • 是 "0x61"
  • 字符串"a"

    • 编码到计算机中
      • 字节状态 是 b"\x61"
  • 数字都是(61)16

  • 如果是字节序列呢?

字节序列

图片描述

  • 看起来是把 ascii 字符的二进制数字存进了列表
  • 确认一把

图片描述

  • 确实如此
  • 更通用的数字呢?

通用字节

  • 任意字节

图片描述

  • 97确实是"a"字符 ascii 序数
  • 被作为列表的第一个元素

总结

  • 给事物编号之后
    • 就可以放到计算机的字节中
      • 这就是编码

图片描述

  • 我们通过 能否通过
    • 已经放到计算机中的字节
      • 找回 原来对应的事物呢?🤔
  • 我们下次再说👋🏻