Конвертация десятичного числа в двоичное и наоборот

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

Из десятичной в двоичную

Если мы хотим преобразовать десятичное число в двоичное, нам нужно выяснить, какие числа из двоичной системы столбцов складываются в наше десятичное число. Число, например, 23 мы можем составить из чисел 16 + 4 + 2 + 1 (все они подходят под значения двоичных столбцов). Таким образом, мы можем сказать, что 23 записано в двоичном виде 10111 следующим образом:

1286432168421
10111

То есть:

2310 = 101112

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

Такой подход существует. Он представляет собой деление целевого числа на 2 с остатком. Нужно записать число, разделить его на 2 в столбик, записать целое, затем разделить на 2 остаток, и продолжать деление до тех пор, пока в результате деления не окажется 0. Когда деление закончено, в обратном порядке выписывается остаток, и этот порядок образует в итоге эквивалентное заданному двоичное число.

Convering to binaryрис. 1

Возможно, не совсем очевидно, почему этот подход дает нам результат, к которому мы стремимся, но если мы снова пройдем этот процесс, используя 13 шариков, то картина должна стать более четкой (см. рис. 2).

conv-with-pebblesрис. 2

 

Из двоичной в десятичную

Чтобы перевести число, записанное в двоичной системе счислений, нужно взять значение из каждого столбца (рис.3) содержащего единицу – 1 и сложить их вместе. Получится  эквивалентное число, записанное в десятичной системе.

Конвертация из десятичной в двоичную системурис.3

Тут все достаточно просто. Для закрепления результата предлагаю попробовать самостоятельно перевести следующие двоичные числа: а) 00101001, b) 11111111, c) 10101010.