## Кодирование ### Двоичное кодирование ![Сигналы](../../Attachments/Сигналы.png) #### Достоинства 1. Надежно и помехоустойчиво 2. Простая арифметика 3. Диапазоны и точность наращиваются разрядностью (слева и справа соотвественно) 4. Погрешности "by design", а не "by implementation" #### Недостатки 1. Нечитаемое представление 2. Простые десятичные дроби записываются в виде бесконечных двоичных дробей 3. Дискретное кодирование сигналов (точность) ## Машинное слово. Представления данных - Машинное слово - единица данных, естественная для обработки вычислителем - Примеры: сложение, пересылка и т.п. - Целые числа - Позиционные системы счисления - Дополнительный код - Big & Little endian - Дроби - С фиксированной точкой - С плавающей точкой - Перечисления - Двоично-десятичное кодирование - Символы (старые кодировки) - Тегированные данные ![Little & Big endian](../../Attachments/Little%20&%20Big%20endian.png) ### Классификация типов по версии IBM ![IBM types](../../Attachments/IBM%20types.png) ## Код Грея и BCD ### Код Грея Две "соседние" кодовые комбинации различаются только в одном двоичном разряде ### BCD Форма записи рациональных чисел, когда каждый десятичный разряд числа записывается в виде его четырехбитного двоичного кода ![Gray and BCD](../../Attachments/Gray%20and%20BCD.png) ### Base64 и Base58 ### Base64 Стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z, цифры 0-9 (всего 62 знака) и 2 дополнительных символа ![Base64](../../Attachments/Base64.png) ### Base58 Модификация Base64 для избежания неоднозначных символов (0, I, O, |). В конце сообщения - хешсумма (checksum)