作为使用二进制和 ASCII 格式练习的一部分,我使用 C 程序将整数 49 写入文件。在二进制中,其 4 字节表示为
00000000 00000000 00000000 00110001
在ascii中,前3个字节是空字节(显示为^@
),最后一个字节是字符1
。当我在 vim 中打开它时,我期望看到三个空字节,后面是 1
。相反,我看到它相反,即 1
后跟三个空字节。为什么会这样?
最佳答案
看来您的平台是小端(所有 x86 都是小端),存储字节从低到高,因此内存中的 49
存储为
00110001 00000000 00000000 00000000
而不是你所期望的。
如果您想以您期望的格式显示它,您需要使用htonl()
function使用big-endian(也称为网络字节顺序)保存它。 .
关于vim - 文本编辑器中的反转字节序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45549706/