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


    编码(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就是编码
    • 编码就是给事物编个号

    • 编码基本了解了
    • 给事物编号就是编码
    • 怎么通过编号找回原来的事物呢?🤔
  • 相关阅读:
    轻松使用androidstudio交叉编译libredwg库
    liunx的三个时间atime,mtime,ctime详细说明与使用场景
    【编程不良人】Dubbo学习笔记01---Dubbo定义、架构演变、Dubbo入门案例
    k8s教程(16)-pod之污点与容忍
    SPring Boot整合第三方框架
    9、JAVA入门——循环结构
    HI3559AV100 GPIO配置和操作(二)
    一文教会你SpringSecurity 自定义认证登录
    深入浅出 多线程编程(2)
    Java作业7-Java异常处理
  • 原文地址:https://blog.csdn.net/overmind/article/details/127905304