如何建立二進位檔案?

如何建立二進位檔案?

我寫了一些我認為可以解析文件中的位的東西,但現在我需要測試它。我想創建一個文件知道有一定順序的​​位元。就像是:

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)也是如此。

相關內容