Files
obsidian/Computer Science/Системные паттерны/Представление данных.md
T
roma-dxunvrs 05a67d2998
deploy / Pull and Restart (push) Successful in 17s
18.09.26
2026-09-18 22:52:40 +03:00

2.5 KiB
Raw Blame History

Кодирование

Двоичное кодирование

!Сигналы.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)