Системы счисления

1. Типы систем счисления

  1. Позиционные — значение цифры зависит от позиции.
    Примеры: двоичная, десятичная, восьмеричная, шестнадцатеричная.
  2. Непозиционные — каждая цифра имеет фиксированное значение.
    Примеры: римские числа.
  3. Смешанные — специальные правила для разных оснований.
    Пример: время (часы, минуты, секунды — разные основания).

Общая формула позиционной системы:
\(N = d_0 \cdot b^0 + d_1 \cdot b^1 + d_2 \cdot b^2 + \dots + d_n \cdot b^n\)

  • \(d_0\) — младший разряд
  • \(d_n\) — старший разряд
  • \(b\) — основание системы

Пример: \(1011_2\) → десятичное
\(1\cdot2^3 + 0\cdot2^2 + 1\cdot2^1 + 1\cdot2^0 = 11_{10}\)

2. Перевод из десятичной системы

2.1 Делением с остатком (для целых чисел)

  1. Делим число на основание новой системы.
  2. Записываем остаток.
  3. Берём частное и повторяем, пока не получится 0.
  4. Число в новой системе = остатки снизу вверх.

Пример: \(345_{10}\) → двоичная

Деление Частное Остаток
\(345 \div 2\) 172 1
\(172 \div 2\) 86 0
\(86 \div 2\) 43 0
\(43 \div 2\) 21 1
\(21 \div 2\) 10 1
\(10 \div 2\) 5 0
\(5 \div 2\) 2 1
\(2 \div 2\) 1 0
\(1 \div 2\) 0 1

Результат: \(101011001_2\)

2.2 Через позиционную запись (для дробных чисел)

Для числа с целой и дробной частью:
\(N = \sum_{k=0}^{n} d_k \cdot b^k + \sum_{k=1}^{m} f_k \cdot b^{-k}\)

Пример: \(101.11_2\) → десятичное
\(1\cdot2^2 + 0\cdot2^1 + 1\cdot2^0 + 1\cdot2^{-1} + 1\cdot2^{-2} = 5.75_{10}\)

3. Прямой перевод между системами

Используется для систем с основаниями, кратными друг другу (2↔8, 2↔16).

  • Двоичная → Восьмеричная: группы по 3 бита справа налево.
  • Двоичная → Шестнадцатеричная: группы по 4 бита справа налево.
  • Восьмеричная → Двоичная: каждая цифра = 3 бита.
  • Шестнадцатеричная → Двоичная: каждая цифра = 4 бита.

Примеры:

  1. \(110101111001_2\) → шестнадцатеричная
    • Группируем по 4: \(1101\ 0111\ 1001\)
    • Переводим: \(1101=D\), \(0111=7\), \(1001=9\)
    • Результат: \(D79_{16}\)
  2. \(D79_{16}\) → двоичная
    • \(D=1101\), \(7=0111\), \(9=1001\)
    • Результат: \(110101111001_2\)
  3. \(110101_2\) → восьмеричная
    • Группируем по 3: \(110\ 101\)
    • Переводим: \(110=6\), \(101=5\)
    • Результат: \(65_8\)

4. Отрицательные числа в двоичной системе

Для представления отрицательных чисел в двоичной используются:

  1. Прямой код — старший бит = знак (0 = +, 1 = -), остальные биты = модуль числа.
    Недостаток: два нуля (+0 и -0).
  2. Обратный код — отрицательное число = инверсия всех битов положительного числа.
    Пример: \(5_{10} = 0101_2 \Rightarrow -5 = 1010_2\).
  3. Дополнительный код (Two’s complement) — инверсия всех битов + 1.
    Пример: \(5_{10} = 0101_2 \Rightarrow -5 = 1011_2\)
    Преимущество: одно представление нуля, удобен для арифметики.

    5. Таблица методов перевода

Метод Когда использовать Пример
Позиционная запись Любая система → десятичная \(1011_2 \to 11_{10}\)
Делением с остатком Десятичная → любая \(345_{10} \to 101011001_2\)
Прямой перевод Системы с основаниями 2, 8, 16 \(110101_2 \to 65_8\) или \(D79_{16}\)