Al jugar golf con códigos, habrá momentos en los que necesitará un volcado hexadecimal de su código, generalmente porque ha utilizado caracteres no imprimibles. Entonces, ¿por qué no hacer un programa que Hex Dumps mismo?
El reto
Este desafío es, sin entrada, generar un volcado hexadecimal de su código fuente en el siguiente formato:
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 ................
O, por ejemplo, si su programa fue 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)
Detalles específicos
El volcado hexadecimal se divide en filas de tres partes, cada fila representa 16 bytes de su código fuente.
La primera parte es la dirección de memoria. Especifica dónde comienza la fila actual en su código. Escrito como un número hexadecimal de 2 bytes, seguido de un :, luego un espacio.
El segundo, es el volcado hexadecimal en sí. Esto es 16 bytes de su código fuente, escrito en forma hexadecimal separados por espacios. Esto debería ser una representación de bytes precisa utilizando la codificación de su código.
Por último, después de un espacio de dos espacios, es el código en sí. Esto es simplemente 16 caracteres de su código, con caracteres no imprimibles escritos como.
Notas
- Este es un desafío de quine , por lo que se aplican las reglas estándar de quine .
- Y este también es un desafío de código de golf , por lo que se aplican las lagunas estándar .
- Como se muestra en el segundo ejemplo, no escriba bytes después de EOF, en su lugar use espacios en blanco.
- El espacio en blanco al final está bien.
- Las incorporaciones al volcado hexadecimal, si tiene una en este formato específico, no están prohibidas, pero están mal vistas.
- Los caracteres no imprimibles se refieren a cualquier carácter que, representado como un solo byte, no puede representarse como un glifo espaciado único. Para UTF-8, significa esto
0-31,128-255. Para la página de códigos Jelly , como todos los caracteres se pueden representar como un glifo espaciado, no hay caracteres no imprimibles.
xxdeso?