作为使用二进制和ascii格式的练习的一部分,我使用C程序将整数49写入文件。在二进制中,其4字节表示是
00000000 00000000 00000000 00110001
在ascii中,前3个字节是空字节(显示为^@
),最后一个字节是字符1
。当我在vim中打开它时,我希望看到三个空字节,然后是1
。相反,我看到它反转,即1
后跟三个空字节。为什么会这样?
答案 0 :(得分:2)
您的平台似乎是小端(所有x86都是小端),它将字节从低到高存储,因此内存中的49
存储为
00110001 00000000 00000000 00000000
而不是你所期望的。
如果您希望以您期望的格式显示它,则需要使用htonl()
function使用big-endian(也称为网络字节顺序)保存它。