Перейти к содержимому

Как построить двоичную запись числа

  • автор:

Двоичная система счисления

В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, десятичная двойка является основанием двоичной системы счисления, аналогично тому, как в десятичной системе основанием является число десять.

Чтобы научиться считать в двоичной системе счисления, рассмотрим, как формируются числа в привычной для нас десятичной.

В десятичной системе счисления мы располагаем десятью знаками-цифрами: от 0 до 9. Когда счет достигает числа 9, вводится новый более старший разряд – десятки. При этом разряд единиц обнуляется и счет в этом разряде опять начинается с нуля. После числа 19 разряд десятков увеличивается на 1, а разряд единиц снова обнуляется. Получается число 20. Когда десятки дойдут до 9, впереди них появится третий разряд – сотни.

Формирование каждого последующего числа в двоичной системе счисления аналогично тому, как это происходит в десятичной за исключением того, что используются всего-лишь две цифры: 0 и 1. Как только разряд достигает своего предела, то есть единицы, появляется новый разряд, а старый обнуляется.

0 1 10 11 100 101 110 111

Итак, число три в двоичной системе записывается как 11, в десятичной – как 3. Количественно это одинаковые числа. Это одно и то же число, выраженное в различных системах счисления. Если есть вероятность неоднозначной трактовки числа, к нему приписывается нижний индекс в десятичной системе счисления, обозначающий, в какой системе счисления выражено данное число:

Индекс для числа, выраженного в десятичной системе, обычно опускается.

Перевод чисел из двоичной системы счисления в десятичную

В двоичной системе счисления с увеличением значения количество разрядов растет очень быстро. Как определить, что значит двоичное число 10001001? Нам сложно понять, сколько это, мы привыкли мыслить в десятичной системе. Поэтому часто используется перевод двоичных чисел в десятичные.

В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и так далее. Например:

5476 = 5000 + 400 + 70 + 6

Можно пойти еще дальше и разложить число, используя основание системы счисления, возводимое в показатель степени, равный разряду цифры, уменьшенному на единицу:

5476 = 5 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

После равенства числа 5, 4, 7 и 6 – это набор цифр из которых состоит число 5476. Все эти цифры умножаются на десять, возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы. Так, например, 6 находится в первом разряде, поэтому она умножается на 10 (1-1) . Натуральное число в нулевой степени равно единице. Таким образом, мы умножаем 6 на 1.

Точно также производится разложение числа в двоичной системы счисления, кроме того, что основанием выступает двойка, а не десятка. Здесь до знака равенства число представлено в двоичной системе счисления, после «равно» запись идет в десятичной:

10001001 = 1 * 2 7 + 0 * 2 6 + 0 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0

Результат вычислений дает десятичное число, количественно равное двоичному 10001001:

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 =
= 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

То есть число 10001001 по основанию 2 равно числу 137 по основанию 10:

Почему двоичная система счисления так распространена?

Дело в том, что двоичная система счисления – это язык современной вычислительной техники.

Когда любые данные сохраняются на компьютере, они кодируются числами. С числами же компьютер выполняет операции, изменяя эти данные.

Допустим, у нас есть десятичное число 14, которое требуется сохранить в компьютерной памяти. Мы задействуем участок памяти, в данном случае состоящий как минимум из двух элементов, отводимых под разряды. В одном из разрядов мы сохраняем десятичное число 1, в другом – число 4.

Элемент памяти – это физическое устройство. Если проектировать его для хранения десятичной цифры, потребуется создать такое устройство, которое может находиться в десяти разных физических состояниях и способно переключаться между ними. Каждое из этих состояний будет соответствовать числу от 0 до 9.

Создать такой элемент памяти возможно, однако сложнее и дороже, чем создать элемент, способный находиться только в двух состояниях. Одно состояние сопоставить нулю, второе – единице. Кроме того, подобное хранение данных является более надежным.

Поэтому оказалось проще перевести число 14 в двоичную систему счисления, получив число 1110, и именно его сохранить в памяти. И пусть даже при этом будут задействованы не два, а четыре разряда, то есть четыре элементарных единиц памяти.

Перевод десятичного числа в двоичное

Одним из алгоритмов перевода десятичного числа в двоичное является деление нацело на два с последующим «сбором» двоичного числа из остатков. Переведем таким образом число 14 в двоичное представление.

14 / 2 = 7, остаток 0 7 / 2 = 3, остаток 1 3 / 2 = 1, остаток 1 1 / 2 = 0, остаток 1

Собирать остатки надо с конца, то есть с последнего деления. Получаем 1110.

Выполним то же самое для числа 77:

77 / 2 = 38, остаток 1 38 / 2 = 19, остаток 0 19 / 2 = 9, остаток 1 9 / 2 = 4, остаток 1 4 / 2 = 2, остаток 0 2 / 2 = 1, остаток 0 1 / 2 = 0, остаток 1

Собираем остатки вместе, начиная с конца: 1001101.

Проверим, выполнив обратный перевод:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77

Как построить двоичную запись числа

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Перевод из десятичной системы счисления в двоичную

Заметим, что в языке Python есть встроенная функция bin , которая переводит десятичное число в двоичную систему счисления.

>>> bin(5) '0b101' >>> bin(10) '0b1010'

Здесь же рассматривается алгоритм такого перевода и его реализация на Python.

Обычно десятичное число преобразуют к двоичному представлению путем нахождения остатков от деления на 2. При этом полученное на предыдущем шаге частное выступает в качестве делимого на следующем шаге. Деление заканчивается, когда делимое обращается в ноль. Остатки собираются в двоичное число начиная с конца, то есть последний остаток будет первой цифрой двоичного числа. Например, надо перевести число 8 в двоичную систему:

  • 8 / 2 = 4, остаток 0
  • 4 / 2 = 2, остаток 0
  • 2 / 2 = 1, остаток 0
  • 1 / 2 = 0, остаток 1
  • 0 — конец деления
  • Сборка: 10002

При реализации данного алгоритма с помощью языка программирования надо организовать хранение остатков. Сделать это можно в переменной строкового типа или в списке. В случае строки каждый новый остаток следует добавлять в начало.

n = int(input()) b = '' while n > 0: b = str(n % 2) + b n = n // 2 print(b)
8 1000

Пример решения задачи с использованием списка и без преобразования цифр двоичного числа в строковый тип:

n = int(input()) b = [] while n > 0: b.append(n % 2) n //= 2 b.reverse() for i in b: print(i, end='') print()

Метод reverse списка изменяет последовательность элементов на обратную.

X Скрыть Наверх

Решение задач на Python

home » Перевод чисел из десятичной системы в двоичную

Двоичная система счисления — позиционная система счисления с основанием 2.

Шестнадцатеричная система счисления — позиционная система счисления по целочисленному основанию 16.

\begin 110_ &= 1\times2^+1\times2^+0\times2^=6_ \\ \\ 6_ &= 110_:\\ \end

6 / 2 = 3, Остаток 0, (LSB — Least Significant Byte)
3 / 2 = 1, Остаток 1
1 / 2 = 0, Остаток 1, (MSB — Most Significant Byte)

Десятичное число (положительное) Двоичное число
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
32 100000
64 1000000
128 10000000
256 100000000

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *