我有一个包含 4 字节浮点数的二进制文件。我想使用 打印这些浮点数od
。但是,od
在第一个位置打印一个附加值。这里发生了什么?
该文件如下所示:
xxd test | head -1
0000000: 932a 6541 7cdf 6b41 6c7e 7141 d779 7641 .*eA|.kAl~qA.yvA
od
打印这个:
cat test | od -f -An -v -w4 | head -2
14,322894 14,742062
第一个打印值 (14.32) 是不是文件中的第一个值。第二个打印值 (14.74) 是文件中的实际第一个值。我与几个十六进制编辑器验证了
932a 6541
是 14.74206(或非常接近该值的值)。那么od
额外的值(14.32)从哪里得到呢?当省略所有其他选项时也会发生这种情况:
cat test | od -f | head -2
0000000 14,322894 14,742062 15,093365 15,404746
0000020 15,652825 15,938543 16,25734 16,616056
答案1
od
是正确的。我的预期输出基于两个十六进制编辑器,它们显示的浮点值与我选择的不同。谢谢 @schily,您指出前四个字节实际上代表 14.32,因此这od
是正确的。