Двоичная система счисления
Системы счисления
quote
Система счисления - это способ записи (представления) чисел.
Вообще, существует много разных систем счисления. Римская, вавилонская, древнеегипетская... За историю человечества было придумано много способов для реализации такой, казалось бы, простой и базовой потребности - для записи чисел.
Каждый день мы используем десятичную систему счисления.
Позиционные и непозиционные системы счисления.
В зависимости от того, имеет ли значимость порядок цифр в записи числа, системы бывают позиционными и непозиционными.
Например, десятичная система - позиционная, так как когда мы с её помощью записываем числа, порядок цифр имеет значение. Записи 199
и 991
будут обозначать два разных числа.
Римская же система счисления - непозиционная (с некоторыми оговорками). Записи MCX
, CMX
и XCM
будут обозначать одно и то же число (1110
).
Запись числа в десятичной системе счисления
Итак, как уже было сказано, самая общеиспользуемая система счисления - это десятичная.
Называется она десятичной потому, что для записи чисел с её помощью используется десять знаков: 0123456789
.
Что же означает запись числа в десятичной счисления? Давайте попробуем "разложить" некоторые числа:
\( 123 = 1 * 100 + 2 * 10 + 3 \)
\( 7491 = 7 * 1000 + 4 * 100 + 9 * 10 + 1 \)
Думаю, не трудно заметить, что здесь прослеживается некая закономерность.
Её можно записать математически:
\( x_1x_2x_3...x_n = x_1 * 10^{n-1} + x_2 * 10^{n-2} + .. + x_n * 10^0 \)
...где:
- \( x_1x_2x_3...x_n \) - какое-то число в десятичной системе из n чисел
- \( x_1, x_2, ..., x_n \) - цифры этого числа
Число 10
в данном случае будет называться основанием системы счисления - это число доступных нам цифр для записи чисел в этой системе. Поэтому в формуле и фигурирует число 10.
Переносим правила записи числа на двоичную систему
Как несложно догадаться, двоичная (бинарная) система счисления - это позиционная система, в которой для записи чисел используются только два символа: 1
и 0
.
Для этой системы будут действовать те же самые правила, что и для десятичной, но только в полученной формуле число 10
придётся заменить на число 2
.
note
Чтобы дальше не путаться между системами счисления, мы будем использовать
следующую запись:
\( 12345_{10} \)
Где число снизу обозначает разрядность системы счисления.
Попробуем разложить бинарное число по той же схеме:
\( 100111_2 = 1 * 2^5 + 0 * 2^4 + 0 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0 \)
Если посчитаем полученное значение, у нас получится \( 32 + 4 + 2 + 1 = 39_{10}\)
Поздравляю! Мы научились раскладывать число в двоичной системе счисления. В принципе, с другими системами счисления всё будет точно так же, но число 2
нужно будет заменить на основание используемой системы счисления.
Перевод из десятичной системы в двоичную
Итак, давайте немного порефлексируем по поводу того, как мы перевели число из двоичной системы счисления в десятичную.
По сути, что мы сделали - это представили число как сумму разных степеней двойки. Вот и всё.
Получается, если мы поймём, из каких степеней двойки "складывается" десятичное число, мы легко сможем записать его в двоичном виде.
Итак, предлагаю свой достаточно простой алгоритм перевода числа из десятичной системы в двоичную.
- Сначала, как бы это дико не звучало, нам нужно запомнить первые 10 степеней двойки (10 - это я написал навскидку, это не конкретное правило).
Возможно, в начале это сложно будет сделать, поэтому можно просто переписать себе куда-то таблицу с этими степенями:
Степень | Значение |
---|---|
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 | 256 |
9 | 512 |
10 | 1024 |
- Смотрим на наше десятичное число, и анализируем, какая самая большая степень двойки может в него поместиться. Например, для числа 63 это будет 5-я степень \( 2:5 = 32\)
- Записываем число как
степень двойки + остаток
- Повторяем все описанные шаги для остатка, пока исходное число не будет полностью записано в виде суммы степеней двоек
В принципе, всё довольно просто. Давайте рассмотрим это на примере.
Примеры
Перевод числа из десятичной системы в двоичную
Начальное число: 1083
- Самая большая влезающая степень двойки - 1024.
- Записываем 1083 как
1024 + 59
. Далее анализируем число 59. - В 59 максимум может поместиться только 32.
- Записываем 59 как
32 + 27
. Далее анализируем число 27. - В 27 влезает только 16.
- Записываем 27 как
16 + 11
. Далее анализируем 11. - В 11 максимум влезает 8.
- Записываем 11 как
8 + 3
. Далее анализируем 3 - Ну, с тройкой всё уже понятно - её можно записать просто как
2 + 1
- Теперь собираем по кусочкам все полученные степени двойки и получаем следующую запись: \( 1083 = 1024 + 32 + 16 + 8 + 2 + 1 = 2^10 + 2^5 + 2^4 + 2^3 + 2^1 + 2^0\)
Нетрудно догадаться, что искомой записью числа в двоичной системе счисления будет:
10000111011
Перевод числа из двоичной системы в десятичную
Начальное число: 11100101110110
.
Длина числа - 14. Поэтому просто по формуле распиываем нужное число в десятичной системе счисления:
\( 1 * 2^{13} + 1 * 2^{12} + 1 * 2^{11} + 1 * 2^8 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^2 + 1 * 2^1 = \)
\( = 8192 + 4096 + 2048 + 256 + 64 + 32 + 16 + 4 + 2 = 14710 \)
Источники
- https://habr.com/ru/articles/124395/