Banner publicitario de PCBWay

Comprimir caracteres ASCII

Necesito comprimir los caracteres ASCII del 32 (deciaml) al 95 (decimal), alguien conoce algún método para lograrlo?, hasta el momento solo he encontrado el Packed-ASCII si me pudieran ayudar con otro estaría muy bien, el método Huffman no me funciona porque se van a enviar muchos caracteres al azar.
 
Siguiendo con tu idea Scooter, como son 64 valores distintos que tiene que enviar, podria usar seis bits por caracter. O sea, en seis bytes podria enviar ocho caracteres. El caracter codificado es el ascii original-32, o sea numeros de 0 a 63, que entran en seis bits.
 
Si, bueno, si con 6 bits le vale y luego suma un offset.

Habría que saber como es la trama y estudiarla.
En ocasiones se pueden mandar los números en binario en lugar de en asccii. Eso ahorra muchísimo: 10000 serían dos bytes en lugar de cinco
 
De hecho el método que encontré (Packed-ASCII) lo que hace es recortar los dos bits más significativos para codificar y así puedes enviar 4 caracteres (4x8=32bits) en 3 caracteres (4x6=24bits) y para decodificar solo agregas en el 6 bit el complemento del 5 bit y en el 7 bit un cero por default, voy analizar lo de enviar el número en binario porque estaría enviando números con punto decimal.
 
Si es coma fija es fácil, y si es coma flotante es un poco más lioso pero se puede enviar en binario. Normalmente con 5 o 6 bytes se puede expresar cualquier número que se te ocurra con suficiente precisión; las calculadoras suelen operar con 5 y las muy buenas con 6.
 
Atrás
Arriba