Momento perfecto para esta pregunta. @isaacg acaba de agregar una nueva característica hoy, que permite acortar enormemente dichos números.
La técnica básica es convertir el número a base 256 y convertirlo en caracteres. Puedes hacer esto usando el código ++NsCMjQ256N
. Luego puede usar la cadena resultante en combinación con C
, que hace exactamente lo contrario (convertir caracteres en int e interpretar el resultado como número base-256). Por lo que obtener 13 caracteres: C"2ìÙ½}ü¶d"
. Algunos de los caracteres no se pueden imprimir.
Pero tenga en cuenta que dije 13 CHARS, no bytes. Si copio los caracteres y cuento con https://mothereff.in/byte-counter , dice 13 caracteres y 18 bytes. Esto se debe a la codificación de caracteres de los caracteres, que es UTF-8 por defecto. Y UTF-8 solo permite 2 ^ 7 caracteres diferentes de 1 byte. Cada char c
con ord(c) > 127
realmente se almacena usando dos bytes en lugar de uno.
Y aquí viene la nueva característica de @ isaacg en juego. Cambió el formato de código predeterminado de UTF-8 a iso-8859-1. iso-8859 puede representar 256 caracteres con solo 1 byte. Entonces ahora puedes alcanzar 13 BYTES. Sin embargo, esto solo es posible con el compilador estándar , esto no funciona en el compilador en línea.
En primer lugar desea convertir el número de valores hexadecimales mediante el uso de este script: jdm.[2.Hd"0"jQ256
. Esto te da 12 32 ec d9 bd 07 7d fc b6 64
. Luego, copie esos números en su archivo de código utilizando un editor hexadecimal (por ejemplo, hexedit para linux).
Darse cuenta:
- Obviamente, eliminas el
"
al final, si la cadena es la última parte del código.
- Esto solo funciona si no hay
34
(el byte 22
) en la representación base-256 de sus números, ya que este es el "
carácter y terminará la cadena. Sin embargo, escapar funciona ( 5C 22
).
- Por cierto, cuando abre un archivo con un editor hexadecimal, es probable que vea el byte
0A
o 0d 0a
al final, que puede eliminar. Esto solo indica el final de la línea.