欢迎光临散文网 会员登陆 & 注册

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

2022-11-17 15:50 作者:oeasy  | 我要投稿

编码(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)是什么意思呢?

  • help(str.encode)help("a".encode)

  • encode

  • encode

    • 放在前面

    • 放在后面

    • 前后都放

    • enlarge

    • endanger

    • ensure

    • encourage

    • golden

    • wooden

    • woollen

    • darken

    • 使心灵亮起来

    • 山水蒙䷃ 开蒙 启蒙

    • enlighten 启蒙

    • en的意思是使东西成为什么样子

  • 这是 编码英文 encode 的意思

  • 可以试试用python编码吗?

  • python编解码

  • 这很简单啊

  • str(字符串)'a' encode(编码)之后

    • b'\x61'

    • b 的意思是bytes(字节序列)

    • x 的意思是 hexadecimal(十六进制)

  • 这个encode和hex有点像呢?

  • 多个字符

  • 想查询encode的帮助

  • 先判断类型

  • 查询帮助

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

  • 多字符编码

  • 确实可以多字符编码

  • 确实是ascii编码

  • 这有点像hex函数...

  • hex

  • 查询帮助

  • hex可以把任意的数字变成十六进制字符串形式

    • 如果数字小于255

    • 确实可以转化成2位16进制的形态

    • 但是类型不是字节

    • 而是十六进制的字符串形态

  • encode的结果是

    • 字节类型

  • 两者有关联吗?

  • 关联

  • 两者确实是有关联的

  • 字符序号的十六进制形态恰好就是

  • 字符在字节中存储的样子

  • "a"字符的序号的十六进制形态是0x61

  • "a"编码到计算机中的字节状态是b"\x61"

  • 两者都是61

  • 总结

  • code就是码

    • 最早也指电报码

    • 后来有各种编码、密码、砝码、条码

    • 都指的是把各种事物编个号

  • encode就是编码

    • 编码就是给事物编个号

  • 编码基本了解了

    • 给事物编号就是编码

    • 怎么通过编号找回原来的事物呢?🤔

  • 我们下次再说👋🏻

  • 蓝桥->https://www.lanqiao.cn/teacher/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy



[oeasy]python0016_编码_encode_编号_字节_计算机的评论 (共 条)

分享到微博请遵守国家法律