Безопасность

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

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

Результат уже получен!

Системы счисления

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

Тогда число 6372 можно представить в следующем виде:

6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

Тогда число 1287.923 можно представить в виде:

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .

В общем случае формулу можно представить в следующем виде:

Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k

где Ц n -целое число в позиции n , Д -k - дробное число в позиции (-k), s - система счисления.

Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.В таблице Таб.1 представлены числа в разных системах счисления.

Таблица 1
Система счисления
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

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

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

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

С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.

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

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

Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 2, для 8-ичной СС - на 8, для 16-ичной - на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.

Пример 4 . Переведем число 159 из десятичной СС в двоичную СС:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать:

159 10 =10011111 2 .

Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.

615 8
608 76 8
7 72 9 8
4 8 1
1

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать:

615 10 =1147 8 .

Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9.

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

Рассмотрим вышеизложенное на примерах.

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

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 .

Следовательно можно записать:

0.214 10 =0.0011011 2 .

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

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

0.125 10 =0.001 2 .

Пример 9 . Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

0.214 10 =0.36C8B4 16 .

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

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Получили:

0.512 10 =0.406111 8 .

Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

159.125 10 =10011111.001 2 .

Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим.

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

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

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

Основание

Алфавит

Двоичная

Троичная

Четверичная

Пятеричная

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

Десятичная

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

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

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

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

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

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

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 в двоичную систему счисления.

десятичное

число

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

десятичное

число

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


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


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

Способ №1.

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


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


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


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


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


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


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


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


2 3 =8 < 13 => 10011111хх. 13-8=5


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


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


2 0 =1 => 1001111101.


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

Способ №2.

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

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

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


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


Получили 11 10 =1011 2 .

Пример:

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



363 10 =101101011 2



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

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

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

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

Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.

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

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

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

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

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

Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:

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

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. Записать это можно так:

10001001 2 = 137 10

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

Дело в том, что двоичная система счисления – это язык вычислительной техники. Каждая цифра должна быть как-то представлена на физическом носителе. Если это десятичная система, то придется создать такое устройство, которое может быть в десяти состояниях. Это сложно. Проще изготовить физический элемент, который может быть лишь в двух состояниях (например, есть ток или нет тока). Это одна из основных причин, почему двоичной системе счисления уделяется столько внимания.

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

Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись.