Системы счисления
1. Типы систем счисления
- Позиционные — значение цифры зависит от позиции.
Примеры: двоичная, десятичная, восьмеричная, шестнадцатеричная. - Непозиционные — каждая цифра имеет фиксированное значение.
Примеры: римские числа. - Смешанные — специальные правила для разных оснований.
Пример: время (часы, минуты, секунды — разные основания).
Общая формула позиционной системы:
\(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 Делением с остатком (для целых чисел)
- Делим число на основание новой системы.
- Записываем остаток.
- Берём частное и повторяем, пока не получится 0.
- Число в новой системе = остатки снизу вверх.
Пример: \(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 бита.
Примеры:
- \(110101111001_2\) → шестнадцатеричная
- Группируем по 4: \(1101\ 0111\ 1001\)
- Переводим: \(1101=D\), \(0111=7\), \(1001=9\)
- Результат: \(D79_{16}\)
- \(D79_{16}\) → двоичная
- \(D=1101\), \(7=0111\), \(9=1001\)
- Результат: \(110101111001_2\)
- \(110101_2\) → восьмеричная
- Группируем по 3: \(110\ 101\)
- Переводим: \(110=6\), \(101=5\)
- Результат: \(65_8\)
4. Отрицательные числа в двоичной системе
Для представления отрицательных чисел в двоичной используются:
- Прямой код — старший бит = знак (0 = +, 1 = -), остальные биты = модуль числа.
Недостаток: два нуля (+0 и -0). - Обратный код — отрицательное число = инверсия всех битов положительного числа.
Пример: \(5_{10} = 0101_2 \Rightarrow -5 = 1010_2\). - Дополнительный код (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}\) |