如何创建二进制文件?

如何创建二进制文件?

我写了一个我认为可以解析文件中位的东西,但现在我需要测试它。我想创建一个文件,知道具有按特定顺序排列的位。例如:

000010000000000000000000000100000

然后我可以使用这个文件通过位解析器进行测试,因此我可以告诉它抓取位 0-4(从左到右排序)并期望它返回00001,然后抓取位 26-31 并期望它返回100000

我怎样才能在 osx 中创建这样的文件?

答案1

您可以使用该printf命令。

要获取示例,0000 1000 0000 0000 0000 0000 0001 0000请执行以下操作:

$ printf "\x08\x00\x00\x10" > file1
$ hexdump file1
00000000  08 00 00 10                                   |....|
00000004

请注意,您的示例是 33 位,我使用了它的前 32 位。

如果你想要更多的变化,请尝试:

$ echo -n "aC3@hLp-" > file2
$ hexdump -C file2
00000000  61 43 33 40 68 4c 70 2d                           |aC3@hLp-|
00000008

每个文件都是“二进制”文件。例如,ASCII 文本文件和二进制文件之间的唯一区别在于,文本文件中字节值的范围仅限于 ASCII 字符。其他任何编码(例如 Unicode UTF-8 或 UTF-16)也是如此。

相关内容