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

标签 vim ascii endianness

作为使用二进制和 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/

相关文章:

python - Vim Python 补全

xml - Vim - 删除 XML 注释

C:将参数传递给程序以将字符转换为 ASCII 值

C#读取一个字符并将其放置在特定位置

vim - 在 ubuntu 上搞砸了 vim/gvim。我如何回到第一方

c# - C# 中的扩展 ASCII

Javascript 类型化数组和字节顺序

java - 用于 C++ 程序的 ByteSwapping Java float

c++ - 负序转换为负数?

vim - 如何输入与上一行字符数一样多的连字符?