Як знає більшість людей тут, використовуючи 4 біти, ми можемо нарахувати від 0 до 15 (0123456789ABCDEF у шістнадцятковій кількості). Але якби ми рахували лише до 9, ми все-таки використовували б 4 біти, а цифри від А до F були б марними.
Однак на сторінці QR-коду у Вікіпедії зазначено, що для використання лише числових цифр від 0 до 9 використовується 3⅓ біт на символ, що є правильним з точки зору статистичної позиції. І все ж третина біта - це не фізичний об’єкт, і для надсилання числа від 0 до 9, на мою інформацію, використовується щонайменше 4 біти.
Чи є спосіб використовувати витрачені комбінації для ефективного надсилання символу з дробами бітів?
Добре, дозвольте навести приклад: дві цифри "27" повинні бути надіслані. З нормальними методами кодування, надіслані біти будуть 00100111. Потім ми могли б уявити систему, яка замінить цифру '2' цифрою 'E' або 'F', залежно від наступного біта; у цьому випадку наступний біт дорівнює 0, тому "2" замінюється на "E". Отриманий бітовий рядок буде тоді 1101 0 111. З іншого боку, якщо цифри "28" повинні бути надіслані, перший біт після "2" - це 1, тож замість нього замінюється цифра "F", виходить рядок 1111 1 000.
В обох випадках було досягнуто економність 1 біта, тому що один клювач був використаний для двох різних символів. Іншим словом, на кожен символ використовується три з половиною біти.
(10 * first_digit) + second_digit
та кодувати це в 7 біт, що представляє 0 ... 99, з кодами 100-127, залишеними для інших речей. А ще більше заощаджень - 3 цифри, стислі в 10 біт.