Ao jogar golfe com código, haverá momentos em que você precisará de um Hex Dump do seu código, geralmente porque você usou caracteres não imprimíveis. Então, por que não criar um programa que o Hex Dumps em si?
O desafio
Esse desafio é, sem nenhuma entrada, gerar um Hex Dump do seu código-fonte na seguinte formatação:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Ou, por exemplo, se seu programa foi print("SomeString"):rep(123)
0000: 70 72 69 6e 74 28 5c 22 53 6f 6d 65 53 74 72 69 print("SomeStrin
0010: 6e 67 5c 22 29 3a 72 65 70 28 31 32 33 29 g"):rep(123)
Específicos
O dump hexadecimal é dividido em linhas de três partes, cada linha representando 16 bytes do seu código-fonte.
A primeira parte é o endereço da memória. Ele especifica onde a linha atual começa no seu código. Escrito como um número hexadecimal de 2 bytes, seguido por um:
, em seguida, um espaço.
O segundo, é o próprio Hex Dump. São 16 bytes do seu código-fonte, escritos em formato hexadecimal, separados por espaços. Essa deve ser uma representação precisa de bytes, usando a codificação do seu código.
Por fim, após uma lacuna de dois espaços, é o próprio código. São apenas 16 caracteres do seu código, com caracteres não imprimíveis escritos como.
Notas
- Este é um desafio quine , então Regras de Quine padrão se aplicam.
- E esse também é um desafio do código-golfe , então brechas padrão se aplicam.
- Conforme mostrado no segundo exemplo, não escreva bytes após o EOF, use espaço em branco.
- O espaço em branco à direita é bom.
- Inbuilts para Hex dump, se houver um nesse formato específico, não são proibidos, mas são mal vistos.
- Caracteres não imprimíveis se referem a qualquer caractere que, representado como apenas um byte, não pode ser representado como um glifo com espaçamento único. Para UTF-8, este meio
0-31
,128-255
. Para a página de código Jelly , como todos os caracteres podem ser representados como um glifo com espaçamento único, não há caracteres não imprimíveis.
xxd
ele?