文本编辑器中的反转字节顺序

时间:2017-08-07 14:44:37

标签: vim ascii endianness

作为使用二进制和ascii格式的练习的一部分,我使用C程序将整数49写入文件。在二进制中,其4字节表示是

00000000 00000000 00000000 00110001

在ascii中,前3个字节是空字节(显示为^@),最后一个字节是字符1。当我在vim中打开它时,我希望看到三个空字节,然后是1。相反,我看到它反转,即1后跟三个空字节。为什么会这样?

1 个答案:

答案 0 :(得分:2)

您的平台似乎是小端(所有x86都是小端),它将字节从低到高存储,因此内存中的49存储为

00110001 00000000 00000000 00000000

而不是你所期望的。

如果您希望以您期望的格式显示它,则需要使用htonl() function使用big-endian(也称为网络字节顺序)保存它。