3

[oeasy]python0016_编码_encode_编号_字节_计算机

 1 year ago
source link: https://blog.51cto.com/oeasy/5860854
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

编码(encode)

回忆上次内容

  • 上次找到了字符和字节状态之间的映射对应关系
  • 字符对应着二进制字节
  • 二进制字节也对应着字符
  • 这种字节状态是用2位16进制数来表示的
  • hex(n)可以把数字转化为 ​​16进制​​字符串
  • hexadecimal
  • bin(n)可以把数字转化为 ​​2进制​​字符串
  • integer
  • 我们根据ascii中的字符序号
  • 能够把字符存储进计算机的字节当中了
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串
  • 终于知道字符对应的字节到底长啥样了
  • 但是说到底
  • 为啥要把字符对应成字节呢?🤔
  • 字符和字节之间的关系其实是
  • 编码 encode
  • 解码 decode
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_02
  • 编码encode
  • 就是将文字、数字、其它对象编成数字(字节形态)
  • 简单来说就是给大白菜编个号

用计算机统计考勤

  • 实到情况千差万别
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_03
  • 怎么编码呢?

计算机视角

[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_04
  • 这里只用了一个二进制位
  • 这其实是一个一划开天的过程
  • 世界本是混沌一片
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_05
  • 后来我们有了分别心
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_06
  • 于是区分出了两种基本特性
  • 但是刻板的非黑即白是危险的
  • 阴和阳相互斗争、妥协、转化
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_07
  • 由于黑白比例不同
  • 灰也可以千变万化
  • 所以也说三生万物
  • 可计算机中如何进一步量化呢?
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_08
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_09
  • 这次用了两个二进制位
  • 于是有了四种可能性

2bit编码

[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_10
  • 我们古人的编码要比这经典得多
  • 两仪生四象
  • 这抽象程度非常高
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_11
  • 还可以进一步细化吗?

迟到10分钟

迟到30分钟

迟到50分钟

  • 这也只用了3个二进制位(bit)
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_12
  • 这其实也是一个经典的编码

四象生八卦

  • 卦者,挂也。悬索以示人。
  • 3bit可以形成八卦
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_13
  • 计算机最小的存储单位是字节(byte)
  • 一个字节(byte)有8位(bit)
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_14
  • 可以存放下255种货物的可能
  • 如果有更多的货物应该怎么办呢?
  • 编码可以超过一个字节
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_15
  • 需要称重的
  • 每个都有编码
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_16
  • 具体来说什么是编呢?
  • 就是建立起事物和数字之间的关系就是编
  • 什么是码呢?

码(code)

  • 条码、二维码、密电码
  • 砝码、优惠码、验证码
  • 代码、字节码、邀请码
  • 来自于法语
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_17
  • 早年间是木板子的判例汇编
  • 后来在电报年代汇编电报码
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_18

计算机编码

  • 我们编程其实就是把生活中的各种逻辑
  • 对应成计算机中的各种指令代码
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_19
  • 这就是编程
  • 也叫写代码
  • 代的意思是指代、代替
  • he is coding...
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_20
  • 明白了码(code)
  • 那么这个编码(encode)是什么意思呢?

encode

  • encode
  • en的意思是使东西成为什么样子
  • enlarge
  • endanger
  • ensure
  • encourage
  • golden
  • wooden
  • woollen
  • darken
  • enlighten 启蒙
  • 使心灵亮起来
  • 山水蒙䷃ 开蒙 启蒙
  • 这是 编码英文 encode 的意思
  • 可以试试用python编码吗?

python编解码

[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_21
  • 这很简单啊
  • str(字符串)​​'a'​​ encode(编码)之后
  • 为 ​​b'\x61'​
  • b 的意思是bytes(字节序列)
  • x 的意思是 hexadecimal(十六进制)
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_22
  • 这个encode和hex有点像呢?
  • 想查询encode的帮助
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_23
  • 先判断类型
help(str.encode)
help("a".encode)
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_24
  • 可以把多字符的字符串编码为字节吗?

多字符编码

[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_25
  • 确实可以多字符编码
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_26
  • 确实是ascii编码
  • 这有点像hex函数...
[oeasy]python0016_编码_encode_编号_字节_计算机_字符串_27
  • hex可以把任意的数字变成十六进制字符串形式
  • 如果数字小于255
  • 确实可以转化成2位16进制的形态
  • 但是类型不是字节
  • 而是十六进制的字符串形态
[oeasy]python0016_编码_encode_编号_字节_计算机_16进制_28
  • encode的结果是
  • 两者有关联吗?
  • 两者确实是有关联的
  • 字符序号的十六进制形态恰好就是
  • 字符在字节中存储的样子
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_29
  • "a"字符的序号的十六进制形态是0x61
  • "a"编码到计算机中的字节状态是b"\x61"
  • 两者都是61
  • code就是码
  • 最早也指电报码
  • 后来有各种编码、密码、砝码、条码
  • 都指的是把各种事物编个号
  • encode就是编码
  • 编码就是给事物编个号
[oeasy]python0016_编码_encode_编号_字节_计算机_十六进制_30
  • 编码基本了解了
  • 给事物编号就是编码
  • 怎么通过编号找回原来的事物呢?🤔

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK