show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次找到了
- 字符 和 字节状态 之间的
- 映射 对应关系
- 字符 对应着 字节
- 字节 也对应着 字符
- 字符 和 字节状态 之间的
- 这种字节状态 是用
- 2位16进制数 来表示的
- hex(n)可以把数字转化为
16进制
字符串形式- 对应单词 hexadecimal
- bin(n)可以把数字转化为
2进制
字符串形式- 对应单词 binary
- 根据ascii中的 字符序号
- 能够 把字符存储进 计算机的字节 了
- 这十进制、二进制、十六进制
- 转来转去的有什么意义吗?
- 可以
- 可以看得见摸得着吗?
- 键入 vi ascii.txt
- 使用vi 编辑ascii.txt
- 按下i
- 进入插入模式
- 插入模式下
- 写下abcd四个字母
- 按下esc
- 退回到正常状态
- 键入 :wq
- 保存 并 退出
- 退回到shell之后
ls -l ascii.txt
- ls -l ascii.txt
- 可以 查看 ascii.txt的详细信息
- 注意命令中的空格
- 将终端窗口向右侧移动
- 点击桌面的Home图标
- 启动文件管理器
- 可以 打开ascii.txt观察文件内容
- 还可以 右键ascii.txt查看文件大小
- ascii.txt 明明只有四个字符
- 为什么会有五个字节呢?
- 重新用 vi 编辑ascii.txt
vi ascii.txt
- 键入 :%!xxd
- 将文件 转储为 字节形态
- 可以 看到
- abcd 是以
16进制
形式- 存储在字节中的
- abcd 是以
- 第一个字节
- 0x61 - a
- 第二个字节
- 0x62 - b
- 第三个字节
- 0x63 - c
- 第四个字节
- 0x64 - d
- 最后 还加了个字节
- 0x0a
- 总共5个字节
- 这种字节状态
- 是用 2位16进制数 来表示的
- hex(n)可以把数字 转化为
16进制
字符串形态- 对应单词为 hexadecimal
- 可以看看
- hello.py文件
- 是如何存储的吗?
- hello.py文件
-
再写经典
- vi oeasy.py
-
按i进入插入模式
- 写下代码
-
按下esc
- 退回到正常状态
- 这段 特别熟
- 仿佛写过 2万多遍
- :wq
- 保存并退出
- 回到shell后
ls -l oeasy.py
- ls -l oeasy.py
- 使用 ls -l 命令
- 查看oeasy.py文件的详细信息
- 使用 ls -l 命令
- oeasy.py
- 真的是 30个字节 吗?
- 可以看看
- py文件的字节状态 吗?
- 这30个字节
- 长什么样子呢?
- vi oeasy.py
- 编辑 oeasy.py 文件
- 键入 :%!xxd
- 将文件 转化为 字节形态
- 虽然只有两行
- 不过 也能看到
- 字符和字节间的映射关系
- 不过 也能看到
- 一行有16个字符
- 差2个字节
- 到达两行
- 也就是达到32个字节
- 32个字节 刚好是
- (20)16进制
- 如果 达到32个字节的话
- 正好是两行
- 再去看看稍微大一点的东西
git clone https://github.com/overmind1980/oeasy-python-tutorial.git
- 下载之后
- 按下图 提示进入相应目录
cd oeasy-python-tutorial/samples/000016
- 用ll命令 列出
- 当前文件夹下所有文件的详细信息
ll
- 如果github无法下载的话
- 怎么办呢?
-
如果github无法下载的话
- 从百度网盘进行下载
-
在本地的浏览器中
- 从百度网盘下载
- 链接: https://pan.baidu.com/s/1IzuIMVEpiCIGklCW5YWmSg?pwd=mfjb 提取码: mfjb
- 从百度网盘下载
- 然后可以在~/Code文件夹下找到
- 这个小说总共318KByte
- 每个Byte 对应一个 字符
- 整个小说 共 31w+ 个英文字符
- 每个Byte 对应一个 字符
- 打开这个小说对应的文本文件
vi anderson_fairy_tales.txt
- 打开之后 什么样 呢?
- 这文档 就是 纯文本的
- 如何 转化为 字节形态呢?
- xxd 可以查看 文件的二进制形态
- dump的本意是 倾倒垃圾
- 这里 指的是 转储
- 把文件转储为
- 16进制 字节形态
- 转化为字节模式
- :%!xxd
:%!xxd –r
可以还原回到纯文本状态 😉:%!xxd
转成字节形态:%!xxd –r
转回文本形态
- 反复横跳...
- 可以 感受txt文本
- 总共 318K个字符
- 甚至能知道 每个字节的状态
- 2 位 十六进制(hexadecimal)数
- 刚好很适合 输出字节状态
- 为什么hex 对应着16进制 呢?
- hexa - 对应着六
- 其实就是
- 希腊语 六的发音
- 落实到 英文字母的状态
- 希腊语 六的发音
- 其实就是
- 不同的语族
- 有不同领域擅长的方面
- 最终融汇到 英语词典
- 有不同领域擅长的方面
- hexa 我们理解了
- hexa 对应着 six
- 那么decimal 是什么意思来着?
- decimal 就是 ten
- hex-decimal 就是 six-teen
- 落实到函数 就是hex()
- 怎么用 呢?
- 和二进制 是相同的
- 二进制是0b开头
- 0 代表数字
- b 代表二进制(
b
inary)
- 十六进制是0x开头
- 0 代表数字
- x 代表十六进制(he
x
adecimal)
-
这次从易到难编辑了三个文件
- abcd
- oeasy.py
- 安徒生童话
-
找到了 字符和字节状态之间的
- 映射对应关系
- 字符 对应着 字节
- 字节 也对应着 字符
- 映射对应关系
-
能够 把字符存储进
- 计算机的字节中了
- 终于知道
- 字符对应的字节
到底
长啥样 了
- 字符对应的字节
- 关于vim也得到了很好的锻炼
- 我们对于vim和shell要好好总结一下
- 以后就不会 总提示得这么详细了
- 我们对于vim和shell要好好总结一下
- 我们下次再说!👋