Como eu crio um arquivo binário?

1

Eu escrevi algo que acho que analisa bits de um arquivo, mas agora preciso testá-lo. Gostaria de criar um arquivo que eu conheça tenha bits em uma determinada ordem. Algo como:

000010000000000000000000000100000

Então eu posso usar este arquivo para testar por analisador de bit, então eu posso dizer para pegar bits 0-4 (ordenados da esquerda para a direita) e esperar que ele retorne 00001 e então pegue os bits 26-31 e espere para retornar 100000

Como posso criar um arquivo como este no osx?

    
por Houseman 04.12.2015 / 22:50

1 resposta

1

Você pode usar o comando printf para ele.

Para obter o seu exemplo 0000 1000 0000 0000 0000 0000 0001 0000 do:

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

Note que o seu exemplo é 33 bits, usei os primeiros 32 bits dele.

Se você quiser um pouco mais de variação, tente:

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

Todo arquivo é um arquivo 'binário'. A única diferença entre, por exemplo, um arquivo de texto ASCII e um arquivo binário é que o intervalo dos valores dos bytes em um arquivo de texto é limitado aos caracteres ASCII. O mesmo vale para qualquer outra codificação (por exemplo, Unicode UTF-8 ou UTF-16).

    
por 05.12.2015 / 06:09