Comprimir cadena de numeros hexadecimales

Iniciado por yercaos, 22 Febrero 2011, 17:08 PM

0 Miembros y 1 Visitante están viendo este tema.

yercaos

hola a todos del foro tengo un pequeño incoveniente quisiera poder comprimir y descomprimir (sin perdida) una cadena de numeros hexadecimales

supongamos q tengo 37BE818097EF6166A80F8171A6F84AD73F6157F99F71575F3639CF66BAC podria convertirse en  ABS5448s3SOE.. es decir usando cualquier letra del abecedario(a-z, 0 -9 )...que la longitud de la cadena resultado sea lo mas minimo posible

¿alguna idea?

APOKLIPTICO

Podés hacer algo muy simple: Podés tomar los números como base 16, que es en lo que están por lo que veo y pasarlos a base 38 (a-z y 0-9) y de esa manera, sacas mínimo común múltiplo entre 16 y 38 que es 304 y vas agarrando de a 19 bytes en formato hexadecimal, haces un cambio de base y los convertis en 8 bytes en base 38. Sin embargo, lo que más te recomiendo yo, es o bien agregar caracteres hasta llegar a 40 (ya que el mcm de 16 y 40 es 80 y sólo necesitas 5 bytes en base 16 para sacar 2 en base 40) o quitar hasta llegar a 32. Esto es mejor porque sino vas a tener que utilizar como mínimo 19 bytes para conseguir 8.

Un abrazo
APOKLIPTICO.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.