我有以下简单的代码:
ofstream output("test");
output << 'a';
当我对文件进行八进制转储时,我得到了这个:
0000000 000141
0000001
我可以看到 000141(以 8 为基数)是 8 位宽,而 0000001 可能是 EOF。所有 0 的第一个字节是什么,为什么它在那里?我知道它是 null 是 ascii 但它的目的是什么?
我有以下简单的代码:
ofstream output("test");
output << 'a';
当我对文件进行八进制转储时,我得到了这个:
0000000 000141
0000001
我可以看到 000141(以 8 为基数)是 8 位宽,而 0000001 可能是 EOF。所有 0 的第一个字节是什么,为什么它在那里?我知道它是 null 是 ascii 但它的目的是什么?
这与 C++ 无关(除了源代码显示我们有一个长度为 1 的文件,其中包含一个 'a'),你可能应该标记这个 linux 或 hexdump,因为它看起来像使用八进制输出的 linux 工具 hd/hexdump 的输出。
有关更多信息,请参阅此Wikipedia 文章。
编辑:啊,我错过了问题标题。所以它是od,hd 的八进制“兄弟”。
第一列显示文件偏移量(7 位,十六进制),就像 James 所说的那样。如果文件更长,它会更明显。