Методы перевода десятичного числа в двоичное

Методы перевода десятичного числа в двоичное

 В одном из наших материалов мы рассмотрели определение двоичного числа. Оно имеет самый короткий алфавит. Только две цифры: 0 и 1. Примеры алфавитов позиционных систем счисления приведены в таблице.


  Позиционные системы счисления


Название системы

Основание

Алфавит

Двоичная

2

0,1

Троичная

3

0,1,2

Четверичная

4

0,1,2,3

Пятеричная

5

0,1,2,3,4

Восьмеричная

8

0,1,2,3,4,5,6,7

Десятичная

10

0,1,2,3,4,5,6,7,8,9

Двенадцатеричная

12

0,1,2,3,4,5,6,7,8,9,А,В

Шестнадцатеричная

16

0,1,2,3,4,5,6,7,8,9,А,В,С,D,E,F

Тридцатишестиричная

36

0,1,2,3,4,5,6,7,8,9,А,В,С,D,E,F,G, H,I,J,K,L,M,N,O,P,R,S,T,U,V,X,Y,Z


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


Таблица перевода десятичных чисел от 0 до 20 в двоичную систему счисления.


десятичное

число

двоичное число

десятичное

число

двоичное число

0

0000

11

1011

1

0001

12

1100

2

0010

13

1101

3

0011

14

1110

4

0100

15

1111

5

0101

16

10000

6

0110

17

10001

7

0111

18

10010

8

1000

19

10011

9

1001

20

10100

10

1010

и т.д.

 


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


Как сделать перевод из одной системы счисления в другую? В информатике существует несколько простых способов перевода десятичных чисел в двоичные числа. Рассмотрим два из них.


Способ №1.


Допустим, требуется перевести число 637 десятичной системы в двоичную систему.


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


В нашем случае это 9, т.к. 29=512, а 210=1024, что больше нашего начального числа. Таким образом, мы получили число разрядов результата. Оно равно 9+1=10. Значит, результат будет иметь вид 1ххххххххх, где вместо х может стоять 1 или 0.


Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 637-29=125. Затем сравниваем с числом 28=256. Так как 125 меньше 256, то девятый разряд будет 0, т.е. результат уже примет вид 10хххххххх.


27=128 > 125, значит и восьмой разряд будет нулём.


26=64, то седьмой разряд равен 1. 125-64=61 Таким образом, мы получили четыре старших разряда и число примет вид 10011ххххх.


25=32 и видим, что 32 < 61, значит шестой разряд равен 1 (результат 100111хххх), остаток 61-32=29.


24=16 < 29 - пятый разряд 1 => 1001111ххх. Остаток 29-16=13.


23=8 < 13 => 10011111хх. 13-8=5


22=4 < 5 => 10011111хх, остаток 5-4=1.


21=2 > 1 => 100111110х, остаток 2-1=1.


20=1 => 1001111101.


Это и будет конечный результат.


Способ №2.


Правило перевода целых десятичных чисел в двоичную систему счисления, гласит:


  1. Разделим an−1an−2...a1a0=an−1⋅2n−1+an−2⋅2n−2+...+a0⋅20 на 2.
  2. Частное будет равно an−1⋅2n−2+...+a1, а остаток будет равен
  3. Полученное частное опять разделим на 2, остаток от деления будет равен a1.
  4. Если продолжить этот процесс деления, то на n-м шаге получим набор цифр: a0,a1,a2,...,an−1, которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
  5. Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, которое будет равно нулю.

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


Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:


Получили 1110=10112.


Пример:


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


363

181

90

45

22

11

5

2

1

1

1

0

1

0

1

1

0

1


36310=1011010112



Двоичная система счисления Простыми словами о ядре Linux