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

Привет, посетитель сайта сайт! Продолжаем изучать и протокол сетевого уровня IP, а если быть более точным, то его версию IPv4. На первый взгляд тема двоичных чисел и двоичной системы счисления не имеет отношения к протоколу IP, но если вспомнить, что компьютеры работают с нулями и единицами, то оказывается, что двоичная система и ее понимание — это основа основ, нам нужно научиться переводить числа из двоичной системы счисления в десятичную и наоборот: из десятичной в двоичную . Это нам поможет лучше понять протокол IP, а также принцип работы масок сети переменной длины. Давайте приступать!

Если тема компьютерных сетей вам интересна, то можете ознакомиться с другими записями курса.

4.4.1 Введение

Прежде чем мы начнем, стоит вообще объяснить зачем нужна эта тема сетевому инженеру. Хотя вы могли убедиться в ее необходимости, когда мы говорили , но, вы можете сказать, что есть IP-калькуляторы, которые существенно облегчают задачу по распределению IP-адресов, вычислению нужных масок подсетей/сетей и определению номера сети и номера узла в IP-адресе. Так-то оно так, но IP-калькулятор не всегда под рукой, это причина номер раз. Причина номер два заключается в том, что на экзаменах Cisco вам не дадут IP-калькулятор и все преобразования IP-адресов из десятичной системы счисления в двоичную вам придется делать на листе бумаги , а вопросов, где это требуется на экзамене/экзаменах по получению сертификата CCNA не так уж и мало, будет обидно, если из-за такой мелочи экзамен будет завален. Ну и наконец понимания двоичной системы счисления ведет к лучшему пониманию принципа работы .

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

4.4.2 Десятичные цифры и числа, разряды в числах

Давайте начнем с простого и поговорим про двоичные цифры и числа , вы же знаете, что цифры и числа – это две разные вещи. Цифра – это специальный символ для обозначения, а число – это абстрактная запись, означающая количество. Например, чтобы записать, что у нас пять пальцев на руке мы можем использовать римские и арабский цифры: V и 5. В данном случае пять является одновременно и числом, и цифрой. А, например, для записи числа 20 мы используем две цифры: 2 и 0.

Итого, в десятичной системе счисления у нас есть десять цифр или десять символов (0,1,2,3,4,5,6,7,8,9), комбинируя которые мы можем записывать различные числа. Каким принципом мы руководствуемся, используя десятичную систему счисления? Да все очень просто, мы возводим десятку в ту или иную степень, для примера возьмём число 321. Как его можно записать по-другому, да вот так: 3*10 2 +2*10 1 +1*10 0 . Таким образом получается, что число 321 представляет собой три разряда:

  1. Цифра 3 означает старший разряд или в данном случае это разряд сотен, иначе их количество.
  2. Цифра 2 стоит в разряде десятков, у нас два десятка.
  3. Цифра один относится к младшему разряду.

То есть в данной записи двойка это не просто двойка, а две десятки или два раза по десять. А тройка это не просто тройка, а три раза по сто. Получается такая зависимость: единица каждого следующего разряда в десять раз больше единицы предыдущего, ведь, что такое 300 – это три раза по сто. Отступление по поводу десятичной системы счисление было нужно, чтобы проще понять двоичную.

4.4.3 Двоичные цифры и числа, а также их запись

В двоичной системе счисления всего две цифры: 0 и 1 . Поэтому запись числа в двоичной системе зачастую гораздо больше, чем в десятичной. За исключением чисел 0 и 1, ноль в двоичной системе счисления равен нулю в десятичной, аналогично и для единицы. Иногда, чтобы не перепутать в какой системе счисления записано число, используют суб-индексы: 267 10 , 10100 12 , 4712 8 . Число в суб-индексе указывает на систему счисления.

Для записи двоичных чисел могут быть использованы символы 0b и &(амперсанд): 0b10111, &111 . Если в десятичной системе счисления, чтобы произнести число 245 мы воспользуемся вот такой конструкцией: двести сорок пять, то в двоичной системе счисления чтобы назвать число, нам нужно произнести цифру из каждого разряда, например, число 1100 в двоичной системе счисления следует произносить не как тысяча сто, а как один, один, ноль, ноль. Давайте посмотрим на запись чисел от 0 до 10 в двоичной системе счисления:

Думаю, логика должна быть уже понятна. Если в десятичной системе счисления для каждого разряда у нас было доступно десять вариантов (от 0 до 9 включительно), то в двоичной системе счисления в каждом из разрядов двоичного числа у нас только два варианта: 0 или 1 .

Для работы с IP-адресами и масками подсети нам достаточно натуральных чисел в двоичной системе счисления, хотя двоичная система позволяет записывать дробные и отрицательные числа, но нам это без надобности .

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

Давайте лучше разберемся с тем, как преобразовать число из десятичной системы счисления в двоичную . И тут все на самом деле очень и очень просто, хотя на словах объяснить трудно, поэтому сразу приведу пример преобразования чисел из десятичной системы счисления в двоичную . Возьмем число 61, чтобы выполнить преобразование в двоичную систему, нам нужно это число делить на два и смотреть, что получается в остатке от деления. А результат деления снова делить на два. В данном случае 61 – это делимое, в качестве делителя у нас всегда будет двойка, а частное (результат деления) мы делим снова на два, продолжаем деление до тех пор, пока в частном не окажется 1, эта последняя единица и будет крайним левым разрядом. Рисунок ниже это демонстрирует.

При этом обратите внимание, что число 61, это не 101111, а 111101, то есть выписываем результат с конца. Единицу в последнем частном смысла делить на два нет, поскольку в данном случае используется целочисленное деление, а при таком подходе получается так, как на Рисунке 4.4.2.

Это не самый быстрый способ перевода числа из двоичной системы счисления в десятичную . У нас есть несколько ускорителей. Например, число 7 в двоичной системе записывается как 111, число 3 как 11, а число 255 как 11111111. Все эти случаи до безобразия просты. Дело в том, что числа 8, 4, и 256 являются степенями двойки, а числа 7, 3 и 255 на единицу меньше этих чисел. Так вот для числа, которые на единицу меньше, чем число равное степени двойки, действует простое правило: в двоичной системе такое десятичное число записывается количеством единиц равным степени двойки. Так, например, число 256 это два в восьмой степени, следовательно, 255 записывается как 11111111, а число 8 это два в третьей степени, а это говорит нам о том, что 7 в двоичной системе счисления будет записано как 111. Ну а понять, как записать 256, 4 и 8 в двоичной системе счисления тоже не трудно, достаточно просто прибавить единицу: 256 = 11111111 + 1 = 100000000; 8 = 111 + 1 = 1000; 4 = 11 + 1 = 100.
Любой свой результат вы можете проверить на калькуляторе и по началу лучше так и делать.

Как видим, делить мы еще не разучились. И теперь можем двигаться дальше.

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

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

Чтобы из этого двоичной числа получить десятичное, нужно каждое число в разряде умножить на два в степени, а затем сложить результаты перемножения, проще показать:

1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 = 16+8+4+2+0=30

Откроем калькулятор и убедимся, что 30 в десятичной системе счисления, это 11110 в двоичной.

Видим, что всё сделано верно. Из примера видно, что перевод числа из двоичной системы счисления в десятичную выполняется куда проще, чем обратный перевод . Чтобы уверенно работать с нужно лишь помнить степени двойки до 2 8 . Для наглядности приведу таблицу.

Нам больше и не нужно, поскольку максимально возможное число, которое можно записать в один байт (8 бит или восемь двоичных значений) равно 255, то есть в каждом октете IP-адреса или маски подсети протокола IPv4 максимально возможное значение — 255. В есть поля, в которых есть значения больше 255, но их нам рассчитывать не нужно.

4.4.6 Сложение, вычитание, умножение двоичных чисел и другие операции с двоичными числами

Давайте теперь посмотрим на операции, которые можно выполнять с двоичными числами . Начнем с простых арифметических операций, а затем перейдем к операциям булевой алгебры.

Сложение двоичных чисел

Складывать двоичные числа не так уж сложно: 1+0 =1; 1+1=0 (в дальнейшем дам пояснение); 0+0=0. Это были простые примеры, где использовался лишь один разряд, давайте посмотрим на примеры, где количество разрядов больше, чем один.
101+1101 в десятичной системе это будет 5 + 13 = 18. Давайте посчитаем в столбик.

Результат выделен оранжевым цветом, калькулятор говорит, что мы посчитали верно, можете проверить. Теперь давайте смотреть почему так получилось, ведь вначале я написал, что 1+1=0, но это для случая, когда у нас есть только один разряд, для случаев, когда разрядов больше, чем один, 1+1=10 (или два в десятичной), что логично.

Тогда смотрите, что получается, мы выполняем сложения по разрядам справа налево:

1. 1+1=10, записываем ноль, а единица уходит в следующий разряд.

2. В следующем разряде получается 0+0+1=1 (эта единица пришла к нам из результата сложения на шаге 1).

4. Тут у нас есть единица только у второго числа, но сюда еще перенеслась, поэтому 0+1+1 = 10.

5. Склеиваем всё воедино:10|0|1|0.

Если лень в столбик, то давайте считать так: 101011+11011 или 43 + 27 = 70. Как тут можно поступить, а давайте смотреть, ведь нам никто не запрещает делать преобразования, а от перемены мест слагаемых сумма не меняется, для двоичной системы счисления это правило также актуально.

  1. 101011 = 101000 + 11 = 101000 + 10 + 1 = 100000 + 1000 + 10 + 1.
  2. 11011 = 11000 + 10 + 1 = 10000 + 1000 + 10 + 1.
  3. 100000 + 10000 + (1000 +1000) + (10+10) + (1+1).
  4. 100000 + (10000 + 10000) + 100 + 10.
  5. 100000 + 100000 +110
  6. 1000000 + 110.
  7. 1000110.

Можете проверить калькулятором, 1000110 в двоичной системе счисления это 70 в десятичной.

Вычитание двоичных чисел

Сразу пример для вычитания одноразрядных чисел в двоичной системе счисления , про отрицательные числа мы не говорили, поэтому 0-1 не берем в расчет: 1 – 0 = 1; 0 – 0 = 0; 1 – 1 = 0. Если разрядов больше чем один, то тоже все просто, даже никаких столбиков и ухищрений не нужно: 110111 – 1000, это то же самое, что и 55 – 8. В результате мы получим 101111. И биться сердце перестало, откуда единица в третьем разряде (нумерация слева направо и начинается с нуля)? Да всё просто! Во втором разряде числа 110111 стоит 0, а в первом разряде стоит 1 (если примем, что нумерация разрядов начинается с 0 и идет слева направо), но единица четвертого разряда получается путем сложения двух единиц третьего разряда (получается этакая виртуальная двойка) и от этой двойки мы отнимаем единицу, которая стоит в нулевом разряде числа 1000, ну а 2 — 1 = 1, ну а 1 является допустимой цифрой в двоичной системе счисления.

Умножение двоичных чисел

Нам осталось рассмотреть умножение двоичных чисел, которое реализует за счет сдвига на один разряд влево . Но для начала давайте посмотрим на результаты одноразрядного умножения: 1*1 = 1; 1*0=0 0*0=0. Собственно, всё просто, теперь давайте посмотрим на что-нибудь более сложное. Возьмем числа 101001 (41) и 1100 (12). Умножать будем столбиком.

Если из таблицы непонятно как так получилось, то попробую объяснить словами:

  1. Умножение двоичных чисел удобно делать в столбик, поэтому выписываем второй множитель под первым, если числа с разным количество разрядов, то будет удобнее, если большее число будет сверху.
  2. Следующим шагом умножаем все разряды первого числа на самый младший разряд второго числа. Записываем результат перемножения ниже при этом нужно записать так, чтобы под каждым соответствующим разрядом был записан результат перемножения.
  3. Теперь нам нужно перемножить все разряды первого числа на следующий разряд второго числа и результат записать еще одной строчкой ниже, но этот результат нужно сдвинуть на один разряд влево, если смотреть на таблицу, то это вторая последовательность нулей сверху.
  4. Точно также нужно сделать для последующих разрядов, каждый раз сдвигаясь на один разряд влево, а если смотреть на таблицу, то можно сказать, что на одну клетку влево.
  5. У нас получилось четыре двоичных числа, которые нужно теперь сложить и получить результат. Сложение мы недавно рассмотрели, проблем возникнуть не должно.

В общем-то, операция умножения не такая уж и сложная, нужно лишь немного попрактиковаться.

Операции булевой алгебры

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

Операция «Логическое И» или AND

Операция «Логическое И» или AND эквивалентно умножению одноразрядных двоичных чисел.

1 AND 1 = 1; 1 AND 0 = 1; 0 AND 0 = 0; 0 AND 1 = 0.

1 AND 1 = 1 ;

1 AND 0 = 1 ;

0 AND 0 = 0 ;

0 AND 1 = 0.

Единица в результате «Логического И» будет только в том случае, если оба значения равны единицы, во всех остальных случаях будет ноль.

Операция «Логическое ИЛИ» или OR

Операция «Логическое ИЛИ» или OR работает по следующему принципу: если хотя бы одно значение равно единице, то в результате будет единица.

1 OR 1 = 1; 1 OR 0 = 1; 0 OR 1 = 1; 0 OR 0 = 0.

1 OR 1 = 1 ;

1 OR 0 = 1 ;

0 OR 1 = 1 ;

0 OR 0 = 0.

Операция «Исключающее ИЛИ» или XOR

Операция «Исключающее ИЛИ» или XOR даст нам в результате единицу только в том случае, если один из операндов равен единице, а второй равен нулю. Если оба операнда равны нулю, будет ноль и даже если оба операнда равны единице, в результате получится ноль.

Впервые позиционная система счисления возникла в древнем Вавилоне. В Индии система работает в виде

позиционной десятичной нумерации с использованием нуля, у индусов данную систему чисел

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

называть арабской.

Позиционная система — значение всех цифр зависит от позиции (разряда) данной цифры в числе.

Примеры, стандартная 10-я система счисления - это позиционная система. Допустим дано число 453.

Цифра 4 обозначает сотни и соответствует числу 400, 5 — кол-во десятков и соответствует значению 50,

а 3 — единицы и значению 3. Легко заметить, что с увеличением разряда увеличивается значение.

Таким образом, заданное число запишем в виде суммы 400+50+3=453.

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

Здесь только 2 цифры - это 0 и 1. Основание двоичной системы - число 2.

Цифра, которая находится с самого края справа, указывает количество единиц, вторая цифра -

Во всех разрядах возможна лишь одна цифра — или нуль, или единица.

С помощью двоичной системы счисления возможно закодировать всякое натуральное число, представив

это число в виде последовательности нулей и единиц.

Пример: 10112 = 1*2 3 + 0*2*2+1*2 1 +1*2 0 =1*8 + 1*2+1=1110

Двоичную систему счисления, как и десятичную систему счисления , зачастую используют в вычислительной

технике. Текст и числа компьютер хранит в своей памяти в двоичном коде и программным способом преобразует

в изображение на экране.

Сложение, вычитание и умножение двоичных чисел.

Таблица сложения в двоичной системе счисления:

10 (перенос в

старший разряд)

Таблица вычитания в двоичной системе счисления:

(заём из старшего

разряда) 1

Пример сложения «столбиком» (14 10 + 5 10 = 19 10 или 1110 2 + 101 2 = 10011 2):

+ 1 1 1 0
1 0 1
1 0 0 1 1

Таблица умножения в двоичной системе счисления:

Пример умножения «столбиком» (14 10 * 5 10 = 70 10 или 1110 2 * 101 2 = 1000110 2):

* 1 1 1 0
1 0 1
+ 1 1 1 0
1 1 1 0
= 1 0 0 0 1 1 0

Преобразование чисел в двоичной системе счисления.

Для преобразования из двоичной системы в десятичную пользуются следующей таблицей степеней

основания 2:

Начиная с цифры один каждая цифра умножается на 2. Точка, стоящая после 1, называют двоичной точкой .

Преобразование двоичных чисел в десятичные.

Пусть, есть двоичное число 110001 2 . Для перевода в десятичное записываем его в виде суммы по

разрядам следующим образом:

1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 49

Немного по другому:

1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49

Также хорошо записывать расчет как таблицу:

Двигаемся справа налево. Под всеми двоичными единицами записываем её эквивалент строчкой ниже.

Преобразование дробных двоичных чисел в десятичные.

Задание: перевести число 1011010, 101 2 в десятичную систему.

Записываем заданное число в таком виде:

1*2 6 +0*2 5 +1*2 4 +1*2 3 +0 *2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2 -1 + 0 * 2 -2 + 1 * 2 -3 = 90,625

Другой вариант записи:

1*64+0*32+1*16+1*8+0*4+1*2+0*1+1*0,5+0*0,25+1*0,125 = 90,625

Либо в виде таблицы:

0.25

0.125

0.125

Преобразование десятичных чисел в двоичные.

Пусть, необходимо перевести число 19 в двоичное. Можем сдеать это таким образом:

19 /2 = 9 с остатком 1

9 /2 = 4 c остатком 1

4 /2 = 2 без остатка 0

2 /2 = 1 без остатка 0

1 /2 = 0 с остатком 1

То есть, каждое частное делится на 2 и записывается остаток в конец двоичной записи. Деление

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

цифра (1) будет крайней левой и так далее. Итак, у нас получилось число 19 в двоичной записи: 10011.

Преобразование дробных десятичных чисел в двоичные.

Когда в заданном числе присутствует целая часть, то ее преобразуют отдельно от дробной. Перевод

дробного числа из десятичной системы счисления в двоичную происходит следующим образом:

  • Дробь умножается на основание двоичной системы счисления (2);
  • В полученном произведении выделяется целая часть, которая принимается в качестве старшего

разряда числа в двоичной системе счисления;

  • Алгоритм завершается, если дробная часть полученного произведения равна нулю или если

достигнута требуемая точность вычислений. В противном случае вычисления продолжаются над

дробной частью произведения.

Пример : Нужно перевести дробное десятичное число 206,116 в дробное двоичное число.

Переведя целую часть, получаем 206 10 =11001110 2 . Дробная часть 0,116 умножается на основание 2,

заносим целые части произведения в разряды после запятой:

0,116 . 2 = 0,232

0,232 . 2 = 0,464

0,464 . 2 = 0,928

0,928 . 2 = 1,856

0,856 . 2 = 1,712

0,712 . 2 = 1,424

0,424 . 2 = 0,848

0,848 . 2 = 1,696

0,696 . 2 = 1,392

0,392 . 2 = 0,784

Результат: 206,116 10 ≈ 11001110,0001110110 2

Алгоритм перевода чисел из одной системы счисления в другую.

1. Из десятичной системы счисления:

  • делим число на основание переводимой системы счисления;
  • находим остаток от деления целой части числа;
  • записываем все остатки от деления в обратном порядке;

2. Из двоичной системы счисления:

  • для перевода в десятичную систему счисления находим сумму произведений основания 2 на

соответствующую степень разряда;

Фраза о том, что все новое - это не что иное, как хорошо забытое старое, в полной мере относится к Оказывается, что еще в древнем Китае уже применяли нечто, напоминающее наши «единичка-нолик», правда не для арифметики, а для написания текстов книги Перемен. Ближе всех к пониманию разных систем счисления были инки: они использовали и десятичную, и двоичную системы, правда, последнюю только для текстовых и кодированных сообщений. Можно предположить, что уже тогда, 4 тыс. лет назад, инки знали, как делается перевод из двоичной в десятичную систему.

Современный вариант был предложен Лейбницем всего-то около 300 лет назад, а спустя еще полтора века оставил свое имя в памяти потомков работой по алгебре логики. Двоичная арифметика совместно с алгеброй логики стала фундаментом нынешней цифровой техники. А началось все в 1937 году, когда был предложен метод символического анализа релейных и переключательных схем. Эта работа Клода Шенона стала «мамой» для релейного компьютера, выполнявшего двоичное сложение уже в 1937 году. И, конечно же, одной из задач этого «прадедушки» современных компьютеров был перевод из двоичной в десятичную систему.

Прошло всего три года и очередная модель релейного «компьютера» посылала команды калькулятору используя телефонную линию и телетайп - ну прямо древний интернет в действии.

Что же представляют собой двоичная, десятичная, шестнадцатеричная и, вообще говоря, любая N-ичная система? Да ничего сложного. Возьмем трехзначное число в нашей любимой десятичной системе, оно изображается при помощи 10 знаков - от 0 до 9 с учетом их расположения. Определимся, что цифры этого числа находятся на позициях 0, 1, 2 (порядок идет от последней цифры к первой). На каждой из позиций может находиться любое из чисел системы, однако величина этого числа определяется не только его начертанием, но и местом положения. Например, для числа 365 (соответственно, позиция 0 - цифра 5, позиция 1 - цифра 6, и позиция 2 - цифра 3) значение числа на нулевой позиции - просто 5, на первой позиции - 6*10, и на второй - 3*10*10. Здесь любопытно, что начиная с первой позиции, число содержит значащую цифру (от 0 до 9) и основание системы в степени равной номеру позиции, т.е. можно записать, что 345 = 3*10*10 + 6*10 +3 = 3*102 + 6*101 + 5*100.

Еще пример:

260974 = 2*105 + 6*104 + 0*103 + 9*102 + 7*101 + 4*100.

Как видим, каждое позиционное место содержит значащее число из набора данной системы, и множитель из основания системы в степени равной позиции данного числа (разрядность числа это есть количество позиций, но на +1 больше).

С точки зрения представления числа, его двоичная форма озадачивает своей простотой - только 2 числа в системе - 0 и 1. Но красота математики в том, что даже в усеченном виде, как может показаться, двоичные числа такие же полноценные и равноправные, как и их более «рослые товарищи». Но как же их сравнивать, например, с десятичным числом? Как вариант, нужно сделать, и не торопясь, перевод из двоичной в десятичную. Задачу не назовешь трудной, но эта кропотливая работа требует внимания. Итак, начнем.

Исходя из сказанного выше о порядке представления чисел в любой системе, и имея в виду простейшую из них - двоичную, возьмем любую последовательность «единичек-ноликов». Назовем это число VO (по-русски ВО), и попробуем узнать, что это такое - перевод из двоичной в десятичную систему. Пусть это будет VO=11001010010. На первый взгляд, число как число. Посмотрим!

В первой строке расположим само число в растянутом виде, а вторую распишем как сумму каждой позиции в виде сомножителей - значащей цифры (здесь выбор небольшой - 0 или 1) и числа 2 в степени, равной позиционному числу в десятичной системе, мы же делаем перевод из двоичной в десятичную. Теперь во второй строке нужно просто выполнить вычисления. Для наглядности можно дописать еще и третью строку с промежуточными вычислениями.

VO = 1 1 0 0 1 0 1 0 0 1 0;

VO = 1*210 + 1*29 + 0*28 + 0*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 0*20;

VO=1*1024 + 1*512+0*256+0*128+ 1*64 + 0*32 + 1*16 + 0*8 +0*4 + 1*2 + 0*1.

Вычисляем «арифметику» в третьей строке и имеем то, что искали: VO = 1618. Ну и что же тут замечательного? А то, что это число - самое знаменитое из всех, которые известны людям: с ним связаны пропорции египетских пирамид, знаменитой Джоконды, музыкальных нот и человеческого тела, но… Но с небольшим уточнением - зная, что хорошего должно быть много, его величество случай дал нам это число в 1000 раз больше настоящего значения - 1,618. Наверное, чтобы всем досталось. А попутно перевод из двоичной системы в десятичную помог из бесконечного моря чисел «выловить» самое замечательное - его еще называют «золотая пропорция».

Замечание 1

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

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

В вычислительной технике, использующей машинную арифметику, большую роль играет преобразование чисел из одной системы счисления в другую. Ниже приведем основные правила таких преобразований (переводов).

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

    $X_2=A_n \cdot 2^{n-1} + A_{n-1} \cdot 2^{n-2} + A_{n-2} \cdot 2^{n-3} + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$

Рисунок 1. Таблица 1

Пример 1

Число $11110101_2$ перевести в десятичную систему счисления.

Решение. Используя приведенную таблицу $1$ степеней основания $2$, представим число в виде многочлена:

$11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_{10}$

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

    $X_8 = A_n \cdot 8^{n-1} + A_{n-1} \cdot 8^{n-2} + A_{n-2} \cdot 8^{n-3} + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$

Рисунок 2. Таблица 2

Пример 2

Число $75013_8$ перевести в десятичную систему счисления.

Решение. Используя приведенную таблицу $2$ степеней основания $8$, представим число в виде многочлена:

$75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_{10}$

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

    $X_{16} = A_n \cdot 16^{n-1} + A_{n-1} \cdot 16^{n-2} + A_{n-2} \cdot 16^{n-3} + ... + A_2 \cdot 16^1 + A_1 \cdot 16^0$

Рисунок 3. Таблица 3

Пример 3

Число $FFA2_{16}$ перевести в десятичную систему счисления.

Решение. Используя приведенную таблицу $3$ степеней основания $8$, представим число в виде многочлена:

$FFA2_{16} = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_{10}$

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

  • Для перевода числа из десятичной системы счисления в двоичную его необходимо последовательно делить на $2$ до тех пор, пока не останется остаток, меньший или равный $1$. Число в двоичной системе представить как последовательность последнего результата деления и остатков от деления в обратном порядке.

Пример 4

Число $22_{10}$ перевести в двоичную систему счисления.

Решение:

Рисунок 4.

$22_{10} = 10110_2$

  • Для перевода числа из десятичной системы счисления в восьмеричную его необходимо последовательно делить на $8$ до тех пор, пока не останется остаток, меньший или равный $7$. Число в восьмеричной системе счисления представить как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.

Пример 5

Число $571_{10}$ перевести в восьмеричную систему счисления.

Решение:

Рисунок 5.

$571_{10} = 1073_8$

  • Для перевода числа из десятичной системы счисления в шестнадцатеричную систему его необходимо последовательно делить на $16$ до тех пор, пока не останется остаток, меньший или равный $15$. Число в шестнадцатеричной системе представить как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.

Пример 6

Число $7467_{10}$ перевести в шестнадцатеричную систему счисления.

Решение:

Рисунок 6.

$7467_{10} = 1D2B_{16}$

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

    Например: $0,3125_{(10)}$ в восьмеричной системе счисления будет выглядеть как $0,24_{(8)}$.

    В данном случае можно столкнуться с проблемой, когда конечной десятичной дроби может соответствовать бесконечная (периодическая) дробь в недесятичной системе счисления. В данном случае количество знаков в дроби, представленной в новой системе, будет зависеть от требуемой точности. Также нужно отметить, что целые числа остаются целыми, а правильные дроби - дробями в любой системе счисления.

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

  • Чтобы перевести число из двоичной системы счисления в восьмеричную, его необходимо разбить на триады (тройки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую триаду нулями, затем каждую триаду заменить соответствующей восьмеричной цифрой согласно таблице 4.

Рисунок 7. Таблица 4

Пример 7

Число $1001011_2$ перевести в восьмеричную систему счисления.

Решение . Используя таблицу 4, переведем число из двоичной системы счисления в восьмеричную:

$001 001 011_2 = 113_8$

  • Чтобы перевести число из двоичной системы счисления в шестнадцатеричную, его следует разбить на тетрады (четверки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую тетраду нулями, затем каждую тетраду заменить соответствующей восьмеричной цифрой согласно таблице 4.
Для микросхем компьютера важно лишь одно. Либо сигнал есть (1), либо его нет (0). Но записывать программы в двоичном коде - дело нелегкое. На бумаге получаются очень длинные комбинации из нулей и единиц. Человеку их тяжело.

Использование привычной всем десятичной системы в компьютерной документации и программировании очень неудобно. Преобразования из двоичной в десятичную системы и обратно - весьма трудоемкие процессы.

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

Решением проблемы стала восьмеричная . По крайней мере на заре компьютерной техники. Когда разрядность процессоров была невелика. Восьмеричная система позволила с легкостью переводить как двоичные числа в восьмеричные, так и наоборот.

Восьмеричная система счисления - система счисления с основанием 8. Для представления чисел в ней используются цифры от 0 до 7.

Преобразование

Для того чтобы перевести число в двоичное, необходимо заменить каждую цифру восьмеричного числа на тройку из двоичных цифр. Важно лишь запомнить, какая двоичная комбинация соответствует цифрам числа. Их совсем немного. Всего восемь!
Во всех системах счисления, кроме десятичной, знаки читаются по одному. Например, в восьмеричной системе число 610 произносится «шесть, один, ноль».

Видео по теме

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

Инструкция

Делим десятичное число на два до тех пор, пока не получим неделимый на два остаток. На шаге получим остаток 1 (если число было нечетным) или 0 (если делимое делится на два без остатка). Все эти остатки обязательно должны быть учтены. Последнее частное, полученное в результате такого пошагового деления, всегда будет единицей.
Записываем последнюю единицу в старший разряд искомого двоичного , а полученные в процессе остатки записываем за этой единицей в обратном порядке. Здесь надо быть внимательным и не пропускать нули.
Таким образом, числу 235 в двоичном коде будет соответствовать число 11101011.

Теперь переведем в двоичную систему счисления дробную часть десятичного числа. Для этого последовательно умножаем дробную часть числа на 2 и фиксируем целые полученных . Эти целые части дописываем к полученному в предыдущем шаге числу после двоичной в прямом порядке.
Тогда десятичному дробному числу 235.62 соответствует двоичное дробное 11101011.100111.

Видео по теме

Обратите внимание

Двоичная дробная часть числа будет конечной, только если дробная часть исходного числа конечна и заканчивается на 5. Простейший случай: 0.5 х 2 = 1, следовательно 0.5 в десятичной системе - это 0.1 в двоичной.

Источники:

  • Перевод десятичных чисел в двоичную систему счисления в 2019

Совет 4: Как перевести в десятичную систему двоичные числа

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

Инструкция

Представьте число в виде записи степеней по 2. Для этого все восемь цифр последовательно умножаем на число 2, возведенное в . Степень должна соответствовать разряду цифры. Разряд считается от нуля, начиная с младшего, самого правого символа двоичного числа . Все восемь составленных произведений запишите в .

Совет 5: Как записывать десятичное число в двоичной системе счисления

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

Инструкция

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

Например, преобразования числа 19 выглядит так:19/2 = 18/2 + 1 = 9, в остатке – 1, пишем 1;9/2 = 8/2 + 1 = 4, в остатке – 1, пишем 1;4/2 = 2, остаток отсутствует, пишем 0;2/2 = 1, остаток отсутствует, пишем 0;1/2 = 0 + 1, в остатке – 1, пишем 1.Итак, после метода последовательного деления к числу 19 получилось двоичное число 10011.