Системы счисления
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$ — основание системы
Пример: $10112$ → десятичное
$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.112$ → десятичное
$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. Таблица методов перевода
| Метод | Когда использовать | Пример |
|---|---|---|
| Позиционная запись | Любая система → десятичная | $10112 \to 11{10}$ |
| Делением с остатком | Десятичная → любая | $345_{10} \to 101011001_2$ |
| Прямой перевод | Системы с основаниями 2, 8, 16 | $1101012 \to 65_8$ или $D79{16}$ |