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