여기에서 대부분의 사람들이 알고 있듯이 4 비트를 사용하면 0에서 15까지 계산할 수 있습니다 (16 진수의 0123456789ABCDEF). 그러나 우리가 9까지만 계산한다면 여전히 4 비트를 사용하고 A에서 F까지의 숫자가 낭비됩니다.
그러나 Wikipedia의 QR 코드 페이지 에는 0에서 9 사이의 숫자 만 사용하면 문자 당 3⅓ 비트가 사용되며, 이는 통계적 관점에서 올바른 것입니다. 그러나 비트의 3 분의 1은 물리적 객체가 아니며 0에서 9까지의 숫자를 보내는 것은 적어도 4 비트를 사용합니다.
낭비 된 조합을 사용하여 소수의 비트를 가진 문자를 효과적으로 보내는 방법이 있습니까?
자, 예를 들어 보겠습니다. 두 자리 숫자 "27"을 보내야합니다. 정상적인 코딩 기술을 사용하면 전송 된 비트는 00100111이됩니다. 다음 비트에 따라 숫자 '2'를 숫자 'E'또는 'F'로 대체하는 시스템을 상상할 수 있습니다. 이 경우 다음 비트는 0이므로 '2'는 'E'로 바뀝니다. 결과 비트 열은 1101 0 111입니다. 반면에 숫자 "28"을 보내야하는 경우 '2'뒤의 첫 번째 비트가 1이므로 대신 숫자 'F'로 대체됩니다. 문자열 1111 항복 한 000.
두 경우 모두, 하나의 니블이 두 개의 다른 문자에 사용 되었기 때문에 1 비트의 경제가 적용되었습니다. 다시 말해서, 각 문자에 3 및 1/2 비트가 사용됩니다.
(10 * first_digit) + second_digit
다른 것들을 위해 100-127 코드를 남겨두고 0 ... 99를 나타내는 7 비트로 계산 하고 인코딩 할 수 있음을 여전히 잘 인식하는 것이 좋습니다. 그리고 3 비트를 10 비트로 압축하면 훨씬 더 많은 비용을 절약 할 수 있습니다.