Просмотр содержимого документа
«9.8.Ещё пример задания»
Еще пример задания:
Для передачи чисел по каналу с помехами используется код проверки четности. Каждая его цифра записывается в двоичном представлении, с добавлением ведущих нулей до длины 4, и к получившейся последовательности дописывается сумма её элементов по модулю 2 (например, если передаём 23, то получим последовательность 0010100110). Определите, какое число передавалось по каналу в виде 01010100100111100011?
1) 59143 2) 5971 3) 102153 4) 10273
Решение:
сначала разберемся, как закодированы числа в примере; очевидно, что используется код равномерной длины; поскольку 2 знака кодируются 10 двоичными разрядами (битами), на каждую цифру отводится 5 бит, то есть
2 → 00101 и 3 → 00110
как следует из условия, четыре первых бита в каждой последовательности – это двоичный код цифры, а пятый бит (бит четности) используется для проверки и рассчитывается как «сумма по модулю два», то есть остаток от деления суммы битов на 2; тогда
2 = 00102, бит четности (0 + 0 + 1 + 0) mod 2 = 1
3 = 00112, бит четности (0 + 0 + 1 + 1) mod 2 = 0
но бит четности нам совсем не нужен, важно другое: пятый бит в каждой пятерке можно отбросить!
разобъем заданную последовательность на группы по 5 бит в каждой:
01010, 10010, 01111, 00011.
отбросим пятый (последний) бит в каждой группе:
0101, 1001, 0111, 0001.
это и есть двоичные коды передаваемых чисел:
01012 = 5, 10012 = 9, 01112 = 7, 00012 = 1.
таким образом, были переданы числа 5, 9, 7, 1 или число 5971.
Ответ: 2.