编码(encode)
回忆上次内容
- 上次找到了字符和字节状态之间的映射对应关系
- 字符对应着二进制字节
- 二进制字节也对应着字符
- 这种字节状态是用2位16进制数来表示的
- hex(n)可以把数字转化为
16进制
字符串
- hexadecimal
- bin(n)可以把数字转化为
2进制
字符串
- integer
- 我们根据ascii中的字符序号
- 能够把字符存储进计算机的字节当中了
- 终于知道字符对应的字节到底长啥样了
- 但是说到底
- 为啥要把字符对应成字节呢?🤔
编码解码
- 字符和字节之间的关系其实是
- 编码 encode
- 解码 decode
- 编码encode
- 就是将文字、数字、其它对象编成数字(字节形态)
- 简单来说就是给大白菜编个号
用计算机统计考勤
- 实到情况千差万别
- 怎么编码呢?
计算机视角
情况 | 编码 |
到了 | 1 |
没到 | 0 |
- 这里只用了一个二进制位
- 这其实是一个一划开天的过程
分阴阳
- 世界本是混沌一片
- 后来我们有了分别心
- 于是区分出了两种基本特性
- 阴
- 阳
- 但是刻板的非黑即白是危险的
二生三
- 阴和阳相互斗争、妥协、转化
- 阴阳互根
- 产生了灰
- 由于黑白比例不同
- 灰也可以千变万化
- 所以也说三生万物
- 可计算机中如何进一步量化呢?
量化
- 这次用了两个二进制位
- 于是有了四种可能性
2bit编码
情况 | 编码 |
到了 | 11 |
迟到 | 10 |
因故没到 | 01 |
无故没到 | 00 |
- 我们古人的编码要比这经典得多
四象
- 两仪生四象
- 这抽象程度非常高
- 春夏秋冬
- 子午卯酉
- 元亨利贞
- 成住坏空
- 乾坤离坎
- 天地日月
- 东南西北
- 生长收藏
- 还可以进一步细化吗?
继续细化
情况 | 编码 |
到了 | 111 |
病假 | 110 |
事假 | 101 |
迟到10分钟 | 100 |
迟到30分钟 | 011 |
迟到50分钟 | 010 |
因故没到 | 001 |
无故没到 | 000 |
- 这也只用了3个二进制位(bit)
- 这其实也是一个经典的编码
四象生八卦
- 卦者,挂也。悬索以示人。
- 3bit可以形成八卦
- 计算机最小的存储单位是字节(byte)
- 一个字节(byte)有8位(bit)
- 可以存放下255种货物的可能
- 如果有更多的货物应该怎么办呢?
更多编码
- 编码可以超过一个字节
- 需要称重的
- 每个都有编码
- 编码编码
- 具体来说什么是编呢?
- 就是建立起事物和数字之间的关系就是编
- 什么是码呢?
码(code)
- 有各种码
- 条码、二维码、密电码
- 砝码、优惠码、验证码
- 代码、字节码、邀请码
- code
- 来自于法语
- 早年间是木板子的判例汇编
- 后来在电报年代汇编电报码
计算机编码
- 我们编程其实就是把生活中的各种逻辑
- 对应成计算机中的各种指令代码
- 这就是编程
- 也叫写代码
- 代的意思是指代、代替
- 码是数码
- he is coding...
- 明白了码(code)
- 那么这个编码(encode)是什么意思呢?
encode
- encode
- en的意思是使东西成为什么样子
- 放在前面
- enlarge
- endanger
- ensure
- encourage
- 放在后面
- golden
- wooden
- woollen
- darken
- 前后都放
- enlighten 启蒙
- 使心灵亮起来
- 山水蒙䷃ 开蒙 启蒙
- 这是 编码英文 encode 的意思
- 可以试试用python编码吗?
python编解码
- 这很简单啊
- str(字符串)
'a'
encode(编码)之后
- 为
b'\x61'
- b 的意思是bytes(字节序列)
- x 的意思是 hexadecimal(十六进制)
- 这个encode和hex有点像呢?
多个字符
- 想查询encode的帮助
- 先判断类型
help(str.encode) help("a".encode)
- 查询帮助
- 可以把多字符的字符串编码为字节吗?
多字符编码
- 确实可以多字符编码
- 确实是ascii编码
- 这有点像hex函数...
hex
- 查询帮助
- hex可以把任意的数字变成十六进制字符串形式
- 如果数字小于255
- 确实可以转化成2位16进制的形态
- 但是类型不是字节
- 而是十六进制的字符串形态
- encode的结果是
- 字节类型
- 两者有关联吗?
关联
- 两者确实是有关联的
- 字符序号的十六进制形态恰好就是
- 字符在字节中存储的样子
- "a"字符的序号的十六进制形态是0x61
- "a"编码到计算机中的字节状态是b"\x61"
- 两者都是61
总结
- code就是码
- 最早也指电报码
- 后来有各种编码、密码、砝码、条码
- 都指的是把各种事物编个号
- encode就是编码
- 编码就是给事物编个号
- 编码基本了解了
- 给事物编号就是编码
- 怎么通过编号找回原来的事物呢?🤔