如何解释命令“od -b file”的结果

时间:2013-12-03 05:42:45

标签: java unix

我试图了解JAVA的DataInputStream和DataOutputStream如何使用字节。我在文件中写了一个整数1000。当我使用“od -b file”将文件内容视为字节流时,我得到以下结果:

wangyifan:~/Documents/cs180/draft$ od -b lowlevel  
0000000   000 000 003 350                                                
0000004

当我将000 000 003 350翻译成十进制时,它不是1000。 那么解释这个结果的正确方法是什么呢? 感谢。

1 个答案:

答案 0 :(得分:1)

od 是用于以各种人类可读输出格式显示(“转储”)数据的程序。该名称是“八进制转储”的首字母缩写,因为它默认以八进制数据格式打印。它还可以以各种其他格式显示输出,包括十六进制,十进制和ASCII。它可用于可视化非人类可读格式的数据,如程序的可执行代码。

答案在 Joe Z

的评论中

这里-b od命令选项意味着单字节八进制显示。以十六进制显示输入偏移量,              接着是十六个空格分隔的,三列,零填充,              输入数据的字节,每行八进制。

位于 Big Endian

0350八进制是小数点后的232。

  

怎么样?

(3x8 ^ 2)+(5x8 ^ 1)+(0x8 ^ 0)= 232

现在看看我上面写的十六进制的输入偏移量,              然后是16个以空格分隔的,因此16^2 = 256

现在3是HEX,所以3 HEX = 3 DEC因此256*3

所以整体方程是,

3*256 + 232 = 1000这是您在文件中输入的内容。