Como la mayoría de las personas aquí saben, al usar 4 bits, podemos contar de 0 a 15 (0123456789ABCDEF en hexadecimal). Pero si solo tuviéramos que contar hasta 9, seguiríamos usando 4 bits, y los dígitos de la A a la F se desperdiciarían.
Sin embargo, página de códigos QR de Wikipedia indica que usar solo dígitos numéricos del 0 al 9 usa 3⅓ bits por carácter, que es correcto desde un punto de vista estadístico. Y, sin embargo, un tercio de un bit no es un objeto físico, y el envío de un número del 0 al 9 utiliza al menos 4 bits, que yo sepa.
¿Hay alguna forma de usar las combinaciones desperdiciadas para enviar efectivamente un personaje con fracciones de bits?
Bien, déjeme dar un ejemplo: los dos dígitos "27" deben enviarse. Con las técnicas de codificación normales, los bits enviados serían 00100111. Entonces podríamos imaginar un sistema que reemplazaría el dígito '2' por el dígito 'E' o 'F', dependiendo del siguiente bit; en este caso, el siguiente bit es 0, por lo que el '2' se reemplaza por 'E'. La cadena de bits resultante sería entonces 1101 0 111. Por otro lado, si se deben enviar los dígitos "28", el primer bit después de '2' es un 1, por lo que se reemplaza por el dígito 'F', dando como resultado la cadena 1111
En ambos casos, se ha efectuado una economía de 1 bit, porque se utilizó un mordisco para dos caracteres diferentes. En otras palabras, se utilizan tres bits y medio en cada carácter.