show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次编辑了1个纯文本 文档
- abcd
-
字符确实是
- 存储在 字节里面的
-
但是 转储的时候
- 显示的 是 十六进制形态(Hex)
-
究竟啥是 十六进制 呢?
- 为什么 又出现一个 十六进制 呢??🤔
- 首先明确字节
长
什么样子?
- 1 个 字节(byte)
- 正好 8个 二进制位(binary digit)
- 8-bit
- 正好 8个 二进制位(binary digit)
- 如果我们用 十进制数
- 来表示 一个字节的话
- 表示范围从0到28-1
- [0,255]
- 至少需要3位数字
- 想要用
- 2位数字 得到字节状态
- 有可能吗?🤔
- 把8位 分成前后两段
- 前4位
- 后4位
- 每一段
- 范围是多少呢?
- 4位都是0
- 数值为0
- 4位都是1
- 数值为15
- 从0到15
- 总共16个数字
- 可以 用什么函数 直接
- 将数字 转化为 十六进制形态 吗?
- 就像 bin函数 那样 ?😄
- 进入 python3
- 键入help(hex)
- 观察hex的帮助文件
- 如下图所示
- 观察hex的帮助文件
- hexadecimal 是什么意思?
- ord("a")
- 得到a的序号97
- hex(97)
- 输出97对应的十六进制形式
- hex(ord("a"))
- 找到a对应的数字对应的十六进制形式
-
0x61
就是 十六进制的61
0x
是- 十六进制数的 前缀标志
-
正如
0b
是- 二进制数的 前缀标志
-
那这个0x61是怎么得到的呢?
- 4位 二进制数
- 对应 1位 十六进制数
- 8位 二进制数
- 对应 2位 十六进制数
-
8 位(bit)
- 刚好 对应 1个字节(byte)
-
可以用 hex函数
- 把10进制数 转化为
- 16进制字符串形式
- 把10进制数 转化为
-
就像我们会用 bin
- 把10进制数 转化为
- 2进制字符串形式
- 把10进制数 转化为
- 字符
a
对应- (
97
)10进制数
- (
0b1100001
)2进制数
- (
0x61
)16进制数
- (
-
不过16进制数
- 是怎么 出现16个数字的呢?
-
先回忆 为什么用10进制?
- 因为 我们有10根手指
- 16进制 有多少根手指 呢?
- 16进制需要16根手指
-
这有点可怕啊!!!
-
我们真的需要 16根手指头 吗?
- 印象深刻啊 ...
- 不过 落实到 计数上...
-
真的可以有 比9大的数字 吗?
- 超出我们 对于数字的认知了
-
具体 怎么表示?
9 + 1 = 10
- 10在十六进制中
- 表示为
a
- 表示为
-
15在十六进制中
- 表示为
f
- 表示为
-
可以把
所有的
16进制数字- 列出来吗?
- 哪些字母 对应 这些超过9的数字 呢?
- 找到abcdef六个符号
- 指代10-15 相应的数字
- 15再加1
- 就进位了
- 表示为
0x10
- 对应16了
- 所以叫16进制
- 在ascii编码中的 小写字母
a
- 对应着(
97
)10进制数
- 对应着(
0b1100001
)2进制数
- 对应着(
0x61
)16进制数
- 对应着(
- 我们满16的时候 才进1
- 从0到9 用的都是 原来的符号
- 后面没有符号了
- 用a到f
- "j" 这个字符对应
- (
6a
)16进制数
- (
- 这怎么理解?
- 1个16进制数(hexadecimal)
- 有4位(bit)
- 1个字节(byte) 有 8位(bit)
- 1个字节
- 正好对应 2位16进制数
- 三种进制了
- 我应该如何数数呢?
- 数树的结果 和 手指头的数量 没有关系
- 2根 手指头
- (0b1011)10
- 10根 手指头
- (11)10
- 16根 手指
- (0xb)16
- 都不会影响 数出来的 树量
- 2根 手指头
- 树还是那么多树
- 只是 表示的形式 不同
- 这次我们了解了十六进制数
- 为什么要有 十六进制数?
- 因为 2位 十六进制数
- 可以 准确描述 一个字节
- 我们编写的py文件时
- 都是用ascii字符编写的
- 每个字符 都对应着一个字节状态
- 都是用ascii字符编写的
- 可以查看py文件的 字节状态吗?
- 我们下次再说!👋