首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用xxd将整数转换为二进制

用xxd将整数转换为二进制
EN

Stack Overflow用户
提问于 2016-06-04 22:00:49
回答 1查看 1.9K关注 0票数 1

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

代码语言:javascript
复制
xxd -r -p output.log > output.bin

但是,当我用xxd返回文件时,我会丢失所有的符号(-),并接收一些大于2048的值。有更好的方法吗?谢谢。

编辑:用样本数据..。

代码语言:javascript
复制
$ cat test
4 0 -3 -2 -1 200

$ xxd -r -p test > test.bin

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

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

随着更大的数据集,我将看到正确的值不时显示,但仍然有吨的噪音在输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 00:28:16

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

代码语言:javascript
复制
$ 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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37635440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档