我写了一个我认为可以解析文件中位的东西,但现在我需要测试它。我想创建一个文件,知道具有按特定顺序排列的位。例如:
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)也是如此。