大端和小端差在哪

把 200 写进四个字节里,大端序和小端序的区别是【0】。

开始练习 →

为什么要对齐

结构体里的字段常常不是一个挨一个放的,中间会空出几个字节。这么做是为了【0】。

开始练习 →

同一个数,两种排法

运行下面这段程序,填写它打印出来的结果。 import struct print(struct.pack("<I", 200).hex() + "/" + struct.pack("&

开始练习 →

空出来的那几个字节

运行下面这段程序,填写它打印出来的结果。 import struct print(str(struct.calcsize("=ci")) + "/" + str(struct.calcsize(&qu

开始练习 →

自己写:算出每个字段的偏移

依次摆放 1 字节、4 字节、2 字节三个字段,每个字段都要落在自己大小的整数倍上。输出三个偏移和总长度,用 / 拼起来。⚠️ 按 Python struct 的规矩,末尾不再补齐。

开始练习 →

自己写:小端打包

补全 to_le:取出低八位当第一个字节,右移八位,重复 k 次,拼成十六进制串。

开始练习 →

和 struct 对一遍账

把上一题的 to_le 拿来,和 struct.pack 在四个数上逐一对比,再打出最大那个数的结果。

开始练习 →

收官:同一个 200,走完全程

把这条路线的四件事一次做完:200 的二进制串、11001000 按八位补码读出来的值、200 的小端四字节、以及一个汉字在 UTF-8 下的字节数。

开始练习 →

在真机上怎么看一个数的二进制

在真机上想看一个整数的二进制表示,最直接的办法是【0】。 (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc。)

开始练习 →

这个数二进制里有几个一

真机:python3 -c "print(bin(200))" 得到 0b11001000。这串里有几个 1? (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc。)

开始练习 →