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

[oeasy]python0073_进制转化_eval_evaluate_衡量_oct_octal_八进制

2023-07-20 20:00 作者:oeasy  | 我要投稿

进制转化

回忆上次内容

  • 上次了解的是

    • 整型数字类变量

    • integer

    • 前缀为i

  • 整型变量 和 字符串变量 不同

    • 将 2进制形式的 字符串

    • 转化为 十进制整数

    • 整型变量 是 直接存储二进制形式的

    • 可以用 int()函数

    • int()函数

      • 接受两个变量

      1. 待转化的字符串

      2. 字符串使用的进制

    • 二进制 和 十进制之间

      • bin(41)

      • int("101001",2)

      • 把 10进制整型数字 转化为 2进制字形式符串

      • 把 2进制形式字符串 转化为 10进制整型数字

      • 可以互相转化

      • 除了 二进制、 十进制

        • 怎么转化呢?🤔

        • 还有什么样的进制来着?

      更多进制

      • (41)10进制

        • 可以转化为 各种进制形态的字符串

        • 而且还能 转化

      函数名对应单词前缀binbinary前缀 0boctoctal前缀 0ohexhexadecimal前缀 0x

      数字本质

      • 不论 用什么进制形态 表示数字

        • 本质都一样

      • 类型 都是 整型

        • int 类型

        • 具体数字都是 (41)10进制

      八进制 十进制

      • 八进制对应单词为oct

      十六进制 十进制 转化

      • hex 来自于 six

      进制总结

      • 转来转去

        • 其实万变不离其宗

      函数名对应单词前缀binbinary前缀 0boctoctal前缀 0ointinteger无前缀hexhexadecimal前缀 0x

      二进制 八进制 转化

      • 每一爻都分为阴爻阳爻

        • 三爻构成八卦

      • 3-bit二进制数

        • 对应一个 八进制数

      河图

      • 河图中三八为木数

        • 同属东方青龙木

        • 属生发之相

        • 今天也用三八、八卦来形容普遍联系性

        • 毕竟三生万物

      • 18进制数

        • 对应 32进制数

      • 28进制数

        • 对应 62进制数

      二进制 十六进制 转化

      • 18进制数

        • 对应 32进制数

      • 116 进制数

        • 对应 42进制数

      • 216 进制数

        • 对应 82 进制数

        • 正好一个字节

      • 数字在内存里面就

        • 存在 这一个字节 里面么?

      转化为字节

      • int.bytes函数

        • 可以将整型数字转化为字节

      • 函数有两个参数

        • length

        • byteorder

      • length 决定将数字 转化为个字节

        • 2 个字节可以容纳 0-65535 个数字

        • 41 可以存在 这个范围内

      • byteorder 字节顺序

        • big 从左到右

        • little 从右到左

      数字形态

      • 整型数字变量 i_age

      • 在存储在两个字节里面什么样呢?

        • b'\x00' 是 一个字节全是0

        • b')' 是多少呢?

        • 字节状态是b"\x00)"

      • )对应的字符的序号(ord) 的 16进制形态

        • 0x29

      • 也就是说 ) 字符

        • 对应字节状态为 b'\x29'

      • 两个字节的int型变量

        • 字节序列 b\x00\x29

        • 也就是b\x00)

      • 反过来说

        • 这两个字节

        • 存储着数字41

        • 这是数字形式

        • b"\x00\x29"

        • 那 字符串形式41

          • 是如何存储的呢?

        字符串形态

        • 那字符串形态的变量"41"

          • 是什么样子来着

        • 字符串

          • 就是字符的串

          • 这个字符串 只有两个字符

          • 好像一个大腰子

        • 字节状态如何呢?

        具体形态

        • "41"是一个字符串

          • 里面有两个字符

          • 每一个字符对应一个字节

        • 第一个字符是 4

          • 对应十六进制数 0x34

        • 第二个字符是 1

          • 对应十六进制数 0x31

        具体字符

        • 内存里面就是这两个字节

          • b"\x34\x31"

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

        ascii中观察

        • "x34" 是第一个字节

          • x指的是十六进制hexidecimal

          • (34)16对应着字符4

        • "x31" 是第二个字节

          • x指的是十六进制hexidecimal

          • (31)16对应着字符1

        整型数字和字符串

        • i_ages_age 对比

        i_ages_age41"41"整型数字字符串b"\x00\x29"b"\x34\x31"

        • 他们之间可以相 互转化吗?

        整型数字和字符串的 转化

        • 字符串转化为整型数字

        • 整型数字转化为字符串

        • 类型转化

          • 练了无数次

          • 都练出茧子了

        • 这次来个新方法

        新办法

        • 不论什么形式的字符串

          • 都可以用 eval()函数衡量出来

        • evaluate 衡量

          • 0b 前缀 二进制

          • 0o 前缀 八进制

          • 0x 前缀 十六进制

        • 不光如此

          • eval 还可以计算

        eval

        • eval 可以计算

        • 甚至可以计算函数

        • 这能解决

          • 字符串"3.3"

          • 不能扮演(cast)整型数字的问题吗?

        • 什么是cast来着?

        cast

        • cast原意是投掷

          • 就会形成手影

          • cast a shadow 光投掷到手上

        • 扮演成

          • 成为鹿 或者 狼

          • 手经过 cast

        • 后来代指

          • 人扮演成其他的角色

        • 字符串"3.3"

          • 能扮演整数吗?

        间接扮演

        • 直接扮演不行

        • 先衡量(evaluate)出字符串的值

          • 得到(浮点型小数)

        • 再让得到的浮点型小数

          • 扮演(cast)一个整数(int)

        • 先扮演孙悟空

          • 再扮演孙悟空变的 土地庙

        总结

        • 这次 总结了

          • 四种进制的转化函数

          • 计算字符串值的函数eval

        • 数字41 和 字符串"41" 的不同

        函数名前缀目标字符串所用进制bin0b二进制oct0o八进制hex0x十六进制eval无前缀十进制

        • 字符串"41"

          • 两个字符

          • 字符转化为 ascii 序号

          • b"\x34\x31"

        • 数字 41

          • 转化为 二进制 0b101001

          • 两个字节前面补零

          • b"\x00\x29"

          • 这就两个字节

        • 但是这两个字节在存储的时候

          • 有先后次序吗?🤔

        • 下次再说👋

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

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

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


        [oeasy]python0073_进制转化_eval_evaluate_衡量_oct_octal_八进制的评论 (共 条)

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