вторник, 8 мая 2018 г.

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

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

Итак, что такое вообще двоичная система счисления? Ответ: это система счета из двух чисел (0 и 1)

Составим для наглядности небольшую таблицу:


Десятичная система счисления:              Двоичная система счисления:
                       0                                                                   0
                       1                                                                   1
                       2                                                                  10
                       3                                                                  11
                       4                                                                 100
                       5                                                                 101
                       6                                                                 110
                    и т.д.                                                             и т.д

Но что делать, если число большое, например 320 или 546?
Давайте разберемся в правиле перевода чисел из десятичной системы счисления, в двоичную.

1)Возьмем например число 6
Начинаем делить его на 2
6:2=3
Число 6 разделилось на 2 без остатка, поэтому остаток равен 0
2) Теперь делим число 3 на 2
3:2=1,5
У нас получилось 1,5. В ответе мы оставляем 1, а в остатке мы получаем 1 (поясняю, не важно что у нас получилось 0,5 в остатке. Нам тут важен сам факт, есть остаток или нет, а какой он - не важно)
3) Теперь 1 делим на 2
1:2 = 0,5
У нас получилось 0,5. В ответе мы оставляем 0, а в остатке мы получаем 1.
Как только мы дошли в ответе до нуля - значит перевод закончен.

Теперь, чтобы получить число которое мы перевели, нужно пробежаться по нашим пунктам решения и собрать остатки, но в обратном порядке, т.е. п. 3,2,1

В пункте 3 у нас остаток 1
В пункте 2 у нас остаток 1
В пункте 1 у нас остаток 0

Значит, число 6 (в десятичной) = 110 (в двоичной)


Давайте теперь переведем более большое число, например 2566.
Решение:
1) 2566 : 2 = 1283 (ост. 0)
2) 1283 : 2 = 641,5 (ост 1)
3) 641 : 2 = 320,5 (ост 1)
4) 320 : 2 = 160 (ост 0)
5) 160 : 2 = 80 (ост 0)
6) 80 : 2 = 40 (ост 0)
7) 40 : 2 = 20 (ост 0)
8) 20 : 2 = 10 (ост 0)
9) 10 : 2 = 5 (ост 0)
10) 5 : 2 = 2,5 (ост 1)
11) 2 : 2 = 1 (ост 0)
12) 1 : 2 = 0,5 (ост 1)
Дошли до 0, значит перевод числа закончен.

Теперь собираем остатки в обратном порядке:
101000000110

Вот собственно и все, если сомневаетесь - можете проверить на онлайн калькуляторе по переводу чисел!

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

Спасибо за внимание, жду вашу критику и вопросы в комментариях.



Комментариев нет:

Отправить комментарий