首先我们知道,字节流是不易读的,而且哪怕直接读取出来了所采用的显示格式也不一定是你所期待的那种ASCII码,常用编辑器往往需要安装插件才能较为可视地打开二进制文件,比如 VScode 里的 hexdump 插件。于是当需要处理字节层面的数据,且数据文件不太大时,我习惯把那些二进制文件转换成十六进制字符串文件来直接打开,其中手动添加一些空格啊什么的将不同数据段分隔开,我觉得还是挺方便的,只是从二进制文件转到字符文件,存储空间占用一下子翻了两倍的样子,不过也还行。加上Python这门最为趁手(易读)的工具语言,拿来写一些常用小工具是很方便的。
之前我分析用十六进制字符串表示的数值时习惯用 `int(hexStr, 16)` 的方法来解析,十六进制字符串转至byte存储时习惯使用 `bytes.fromhex(hexStr)`,然后字节解析至对应数值时习惯用 `struct.unpack("
`ord` 接收只包含一个Unicode字符的字符串作为参数,返回表示该字符的Unicode代码点的整数。
>>> ord('a')
97
>>> ord('A')
65
>>> ord('ú')
250
>>> ord('哈')
21704
>>> ord('哈哈')'
File "", line 1
ord('哈哈')'
^
SyntaxError: