gpt4 book ai didi

linux - 使用 xxd 将整数转换为二进制

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:39 25 4
gpt4 key购买 nike

我有一个文件 output.log,它有一个空格列表,' ',分隔的整数范围从 [-2048,2048]。我正在尝试使用 xxd 将其转换为二进制文件。我正在使用命令,

xxd -r -p output.log > output.bin

但是,当我用 xxd 读回文件时,我丢失了所有符号 (-) 并收到了一些大于 2048 的值。有没有更好的方法来做到这一点?谢谢。

编辑:使用示例数据...

$ cat test
4 0 -3 -2 -1 200

$ xxd -r -p test > test.bin

$ xxd test.bin
0000000: 4012 00 @..

也许我误解了 xxd 在做什么,我希望在最后一个命令后看到的是看到我的原始输入数据被显示回来。这不对吗?

对于更大的数据集,我会时不时地看到正确的值出现,但输出中仍然存在大量噪音。

最佳答案

您的输入源文件中可能有一些奇怪的字符,xxd 可以很好地处理数字。尝试使用八进制转储 od -c input 查看您的数据以查找任何奇怪的东西。

$ echo '-3000 -2048 -1 0 1 2048 3000' > foo.input
$ cat foo.input
-3000 -2048 -1 0 1 2048 3000
$ xxd foo.input > foo.hex
$ cat foo.hex
0000000: 2d33 3030 3020 2d32 3034 3820 2d31 2030 -3000 -2048 -1 0
0000010: 2031 2032 3034 3820 3330 3030 0a 1 2048 3000.
$ xxd -r foo.hex > foo.output
$ cat foo.output
-3000 -2048 -1 0 1 2048 3000

关于linux - 使用 xxd 将整数转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37635440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com