我试图了解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
。
那么解释这个结果的正确方法是什么呢?
感谢。
答案 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
这是您在文件中输入的内容。