收官:同一个 200,走完全程
把这条路线的四件事一次做完:200 的二进制串、11001000 按八位补码读出来的值、200 的小端四字节、以及一个汉字在 UTF-8 下的字节数。
阅读更多 →
和 struct 对一遍账
把上一题的 to_le 拿来,和 struct.pack 在四个数上逐一对比,再打出最大那个数的结果。
阅读更多 →
自己写:小端打包
补全 to_le:取出低八位当第一个字节,右移八位,重复 k 次,拼成十六进制串。
阅读更多 →
自己写:算出每个字段的偏移
依次摆放 1 字节、4 字节、2 字节三个字段,每个字段都要落在自己大小的整数倍上。输出三个偏移和总长度,用 / 拼起来。⚠️ 按 Python struct 的规矩,末尾不再补齐。
阅读更多 →
空出来的那几个字节
运行下面这段程序,填写它打印出来的结果。 import struct print(str(struct.calcsize("=ci")) + "/" + str
阅读更多 →
同一个数,两种排法
运行下面这段程序,填写它打印出来的结果。 import struct print(struct.pack("<I", 200).hex() + "/" +
阅读更多 →
为什么要对齐
结构体里的字段常常不是一个挨一个放的,中间会空出几个字节。这么做是为了【0】。
阅读更多 →
大端和小端差在哪
把 200 写进四个字节里,大端序和小端序的区别是【0】。
阅读更多 →
⚠️ 用错表,但一声不吭
把一个汉字按 UTF-8 编码,却按 latin-1 解回来。它不会报错——看看它交出来的是什么。
阅读更多 →
编码再解码,还是原来那个字吗
补全 roundtrip:先按给定编码编成字节,再解回来。
阅读更多 →