1. Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Гид, решили использовать не- равномерный двоичный код. Для букв А, Б, Ви Г использовали такие кодовые слова: А – 111, Б – 110, В – 100, г- 101. Укажите, каким кодовым словом может быть закодирована буква Д. Код должен удовлетворять свойству одно- значного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них. 2. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, Виг, используется посим- вольное кодирование: А- 10, Б - 111, В-1 10, Г- 0. Через канал связи передаётся сообщение: ВАГБААГВ. Закодируйте сообщение данным кодом. Полученное дво- ичное число переведите в восьмеричный вид. 3. Для кодирования букв X, E, Л, 0, Д решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответ- ственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Закодируйте последовательность букв ЛEДOХOД таким и результат запишите шестнадцатеричным кодом. 4. Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Ги Д, используется неравномер- ный двоичный код, позволяющий однозначно декодировать полученную двоичную последовательность. Вот этот код: А — 011, Б – 000, B - 11, Г — 001, Д- 10. Можно ли сократить для одной из букв длину кодового слова так, чтобы код по-прежнему можно было декоди- ровать однозначно? Коды остальных букв меняться не должны. 5. Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать не равномерный двоичный код, удовлетворяющий условию Фано. Для буквы А использовали кодовое слово 0; для буквы Б - 10. Какова наименьшая возможная сумма длин всех шести кодовых слов?
Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения):
111 0001 1011
- 101 0011 0101
Тут все хорошо, из большего вычитается меньшее.
Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу.
Как итог, в разряде:
0-0=0
1-1=0
1-0=1
0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.
111 0001 1011
- 101 0011 0101
1 1110 0110
Это и есть ответ.