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

Запишите число в двоичной системе счисления, а степени двойки справа налево. Например, мы хотим преобразовать двоичное число 10011011 2 в десятичное. Сначала запишем его. Затем запишем степени двойки справа налево. Начнем с 2 0 , что равно "1". Увеличиваем степень на единицу для каждого следующего числа. Останавливаемся, когда число элементов в списке равно числу цифр в двоичном числе. Наше число для примера, 10011011, включает в себя восемь цифр, поэтому список из восьми элементов будет выглядеть так: 128, 64, 32, 16, 8, 4, 2, 1

Запишите цифры двоичного числа под соответствующими степенями двойки. Теперь просто запишите 10011011 под числами 128, 64, 32, 16, 8, 4, 2, и 1, с тем чтобы каждая двоичная цифра соответствовала своей степени двойки. Самая правая "1" двоичного числа должна соответствовать самой правой "1" из степеней двоек, и так далее. Если вам удобнее, вы можете записать двоичное число над степенями двойки. Самое важное – чтобы они соответствовали друг другу.

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

Запишите конечное значение каждой степени двойки. Пройдитесь по каждой цифре двоичного числа. Если эта цифра 1, запишите соответствующую степень двойки под цифрой. Если эта цифра 0, запишите под цифрой 0.

  • Так как "1" соответствует "1", она остается "1". Так как "2" соответствует "1", она остается "2". Так как "4" соответствует "0", она становится "0". Так как "8" соответствует "1", она становится "8", и так как "16" соответствует "1" она становится "16". "32" соответствует "0" и становится "0", "64" соответствует "0" и поэтому становится "0", в то время как "128" соответствует "1" и становится 128.
  • Сложите получившиеся значения. Теперь сложите получившиеся под линией цифры. Вот что вы должны сделать: 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155. Это десятичный эквивалент двоичного числа 10011011.

    Запишите ответ вместе с нижним индексом, равным системе счисления. Теперь все, что вам осталось сделать – это записать 155 10 , чтобы показать, что вы работаете с десятичным ответом, который оперирует степенями десятки. Чем больше вы будете преобразовывать двоичные числа в десятичные, тем проще вам будет запомнить степени двойки, и тем быстрее вы сможете выполнять данную задачу.

  • Используйте данный метод, чтобы преобразовать двоичное число с десятичной точкой в десятичную форму. Вы можете использовать данный метод даже если вы хотите преобразовать двоичное число, такое как 1.1 2 в десятичное. Все, что вам необходимо знать – это то, что число в левой части десятичного числа – это обычное число, а число в правой части десятичного числа – это число "делений надвое", или 1 x (1/2).

    • "1" слева от десятичного числа соответствует 2 0 , или 1. 1 справа от десятичного числа соответствует 2 -1 , или.5. Сложите 1 и.5 и вы получите 1.5, которое является эквивалентом 1.1 2 в десятичном виде.
  • Правило. Чтобы перевести число из одной системы счисления в другую, необходимо исходное число разделить на основание новой системы счисления. Полученное частное вновь поделить на основание новой системы счисления, и выполнять деление до тех пор. пока частное не будет меньше основания новой системы счисления. Полученные остатки от деления, начиная с последнего, записываются в обратном порядке. Это и будет запись числа в новой системе счисления.

    Пример. Число 135 перевести из 10-тичной СС в 2-ичную, 8-ричную и 16-ричную системы счисления.

    1) 2) 3)

    Задание 2.

    Перевести в двоичную, восьмеричную и шестнадцатеричную СС следующие числа 1275,973, 172

    Обратный перевод чисел из любой СС в 10-тичную.

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

    2) Обратный перевод чисел осуществляется по формуле:

    где A – заданное число,

    g – основание СС заданного числа (=2 для 2-ичной СС, для других СС - подобно),

    m – число цифр в целой части числа.

    n – число цифр в дробной части числа,

    a – значение цифр заданного числа(запись дробной части числа выделена синим цветом).

    110110 2 = 1*2 5 +1*2 4 +0*2 3 +1*2 2 +1*2 1 +0*2 0 =54 10

    66 8 =6*8 1 +6*8 0 =48+6=54 10 9A 16 =9*16 1 +10*16 0 =144+10=154 10

    13,4 8 =1*8 1 +3*8 0 +4*8 -1 =8+3+0.5=11.5 10 (это число – десятичная дробь)

    Задание3.

    Перевести в десятичную СС следующие числа:

    101,11 2 =5,75 10 1011001 2 1011,101 2

    125,7 8 =86 10 1253 8 175,132 8

    A19BA 16 =2585726… 10 16A3 16 2BAFD 16

    Перевод чисел с основанием, являющимся степенью числа 2 и обратный перевод. К таким СС относятся двоичная, восьмеричная, шестнадцатеричная системы счисления.



    Правило. Перевод из двоичной СС в восьмеричную СС. Двоичное число делится на группы по 3 цифры с конца(справа налево) и каждая группа преобразуется числом в новом СС

    10.000.101 2 =205 8

    111.000.101.100 2 =7054 8

    1.011.001.101 2 =1315 8

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

    Правило. Из двоичной СС в шестнадцатеричную СС: аналогично, но отделяем по 4 цифры

    0110.0110.1011 2 =66B 16

    1011.1111.0111 2 =BF7 16

    10.1010.0111.0001 2 =2A71 16

    Правило. Для обратного преобразования каждая шестнадцатеричная цифра записывается в виде тетрады.

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

    Правило. Перевод десятичных дробей, меньших единицы (правильные дроби).

    1) необходимо отделить вертикальной чертой дробную часть;

    2) умножить дробную часть на основании новой системы счисления;

    3) результат записать строго под исходным числом, начиная с младшего разряда; если получится перенос в целую часть, то записать ее слева от черты;

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

    0,728 10 =0,564 8

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

    В одном из наших материалов мы рассмотрели определение . Оно имеет самый короткий алфавит. Только две цифры: 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. После этого все остатки нужно выписать в обратном порядке - это и будет число в новой системе счисления.

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

    Выписав остатки в обратном порядке, получим 25 10 =11001 2 .

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

    Перевод из десятичной системы счисления в любую другую систему счисления производится по абсолютно точно таким же правилам. Вот пример перевода 393 10 в шестнадцатеричную систему счисления:

    Выписав остатки в обратном порядке, получим 393 10 =189 16 .

    Нужно понимать, что остатки получаются в десятичной системе счисления. При делении на 16 могут появиться остатки не только от 0 до 9, но также и остатки от 10 до 15. Каждый остаток - это всегда ровно одна цифра в той системе счисления, в которую осуществляется перевод.

    Например, если при переводе в шестнадцатеричную систему счисления Вы получили такие остатки (выписаны в порядке, как они должны быть записаны в числе): 10, 3, 15, 7, то в шестнадцатеричной системе счисления этой последовательности остатков будет соответствовать число A3F7 16 (некоторые по ошибке записывают число как 103157 16 - понято же, что это совсем другое число, и что если так делать, то получится, что ни в каком шестнадцатеричном числе не появится цифры от A до F).

    Перевод дробной части

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

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

    При этом существует два условия завершения процесса:

    1) в результате очередного умножения Вы получили ноль в дробной части. Понятно, что дальше этот ноль сколько ни умножай - он всё равно останется нулём. Это означает, что число перевелось из десятичной системы счисления в нужную точно.

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

    Вот пример перевода числа 0.39 10 в двоичную систему счисления. Точность - 8 разрядов (в данном случае точность перевода выбрана произвольно):

    Если выписать целые части в прямом порядке, то получим 0.39 10 =0.01100011 2 .

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

    Вот так будет выглядеть перевод числа 0.39 10 в шестнадцатеричную систему счисления. Точность - 8 разрядов в данном случае точность снова выбрана произвольно:

    Если выписать целые части в прямом порядке, то получим 0.39 10 =0.63D700A3 16 .

    При этом Вы, наверное, заметили, что целые части при умножении получаются в десятичной системе счисления. Эти целые части, полученные при переводе дробной части числа следует интерпретировать точно так же, как и остатки при переводе целой части числа. То есть, если при переводе в шестнадцатеричную систему счисления целые части получились в таком порядке: 3, 13, 7, 10, то соответствующее число будет равно 0.3D7A 16 (а не 0.313710 16 , как некоторые иногда ошибочно записывают).

    Перевод числа с целой и дробной частью

    Чтобы выполнить перевод числа с целой и дробной частью, нужно отдельно перевести целую часть, а отдельно - дробную, и поэтом эти две части записать вместе.

    Например, 25.39 10 =11001.01100011 2 (переводы целой и дробной части - смотрите выше).

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

    Поскольку при работе с различными системами счисления, особенно при разработке программ, очень часто возникает необходимость перевода небольших целых чисел, то, вообще говоря, имеет смысл запомнить для первых 16 чисел (от 0 до 15).

    Но если разобраться, как легко в уме переводить небольшие целые числа от 0 до 15 из десятичной системы счисления в двоичную, то значительную часть таблицы Вы сможете просто вычислять в уме каждый раз, когда это будет нужно. Проделывайте эту операцию много раз, и в какой-то момент Вы сами не сможете понять - Вы уже запомнили таблицу или всё ещё вычисляете.

    Итак, чтобы перевести небольшое положительное целое число от 0 до 15 из десятичной системы счисления в двоичную, первое, что нужно понять - это что каждой позиции в двоичном числе соответствует степень двойки. При этом степени двойки для позиций от 0 до 3 запомнить очень просто - это числа 1, 2, 4 и 8:

    А число 10 - это 2 плюс 8:

    Ну а число 0 - грех не запомнить, так как, чтобы его получить, ничего не нужно складывать.

    Замечание 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.