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

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

    Изменение основания для позиционных систем счисления

    В позиционной системе счисления с основанием q число может быть представлено в виде полинома

    … + a 2 ∙q 2 + a 1 q 1 + a 0 ∙q 0 + a -1 ∙q -1 + a -2 ∙q -2 + …

    где коэффициенты a i – это цифры системы счисления с основанием q.

    Например, в десятичной системе счисления

    124.733 = 1∙10 2 + 2∙10 1 + 4∙10 0 + 7∙10 -1 + 3∙10 -2 + 3∙10 -3

    Число цифр в системе счисления с основанием q равно q, при этом максимальная цифра равна q - 1. Цифра не может стать равной q, потому что в этом случае произойдёт перенос единицы в новый разряд.

    Например, нужно найти минимальное основание системы счисления, в которой записано число 7832. Так как максимальная цифра равна 8, то минимальное значение q = 8 + 1 = 9.

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

    Особый интерес для нас будут представлять основание 2 и основания, являющиеся степенью двойки – 8 и 16.

    В случае, если основание с. с. больше десяти, то новые цифры берутся по порядку из алфавита. Например, для 16-ричной системы это будут цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

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

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

    123/12 = 10 (3) 10/12 = 0 (10=A)

    Собираем в обратном порядке, сначала последнее значение (это 0), потом сверху вниз все остатки. Получаем 0A3 = A3

    4563/8 = 570 (3) 570/8 = 71 (2) 71/8 = 8 (7) 8/8 = 1 (0)

    Собираем обратно, получаем 10723

    3349 10 → X 16

    3349/16 = 209 (5) 209/16 = 13 (1) 13/16 = 0 (13 = D)

    Собираем вместе: 0D15 = D15

    545/2 = 272 (1) 272/2 = 136 (0) 136/2 = 68 (0) 68/2 = 34 (0) 34/2 = 17 (0) 17/2 = 8 (1) 8/2 = 4 (0) 4/2 = 2(0) 2/2 = 1 (0) 1/2 = 0(1)

    Собираем 01000100001 = 1000100001

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

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

    Например, 129 очевидно 128 + 1 = 2 7 + 1 = 10000001 2

    80 = 81 - 1 = 3 4 - 1 = 10000 - 1 = 2222 3

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

    Перевод осуществляется, используя представление числа в позиционной системе счисления. Пусть необходимо перевести A3 12 → X 10 Известно, что A3 – это 3∙q 0 + A∙q 1 , то есть 3*1 + A*12 = 3 + 120 = 123

    10723 8 → X 10

    1∙q 4 + 0∙q 3 + 7∙q 2 + 2∙q 1 + 3∙q 0 = 1∙8 4 + 0 + 7∙8 2 + 2∙8 + 3 = 1∙4096 + 7∙64 + 2∙8 + 3 = 4563

    D∙16 2 + 1∙16 1 +5∙16 0 = 13∙256 + 16 + 5 = 3349

    1000100001 2 → X 10

    2 9 + 2 5 + 1 = 512 + 32 + 1 = 545.

    Перевод на бумаге обычно осуществляется следующим образом. Над каждой цифрой по порядку пишут номер степени. Затем уже выписывают все слагаемые.

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

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

    0.625 10 → X 2

    0.625 * 2 = 1.250 (1) 0.25 * 2 = 0.5 (0) 0.5 * 2 = 1.0 (1)

    0 – дальнейшее умножение будет давать только нули
    Собираем сверху вниз, получаем 0.101

    0.310 → X2 0.3 * 2 = 0.6 (0) 0.6 * 2 = 1.2 (1) 0.2 * 2 = 0.4 (0) 0.4 * 2 = 0.8 (0) 0.8 * 2 = 1.6 (1) 0.6 * 2 = 1.2 (1)

    0.2 … получим периодическую дробь
    Собираем, получаем 0.0100110011001… = 0.0(1001)

    0.64510 → X5 0.645 * 5 = 3.225 (3) 0.255 * 5 = 1.275 (1) 0.275 * 5 = 1.375 (1) 0.375 * 5 = 1.875 (1) 0.875 * 5 = 4.375 (4) 0.375 * 5 = 1.875 (1) …

    0.3111414… = 0.311(14)

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

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

    0.101 2 → X 10

    1∙2 -1 + 0∙2 -2 + 1∙2 -3 = 0.5 + 0.125 = 0.625

    0.134 5 → X 10

    1∙5 -1 + 3∙5 -2 +4∙5 -3 = 0.2 + 3∙0.04 + 4∙0.008 = 0.2 + 0.12 + 0.032 = 0.352

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

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

    X N → X M ≡ X N → X 10 → X M

    Например

    1221201 3 → X 7

    1221201 3 = 1∙3 6 + 2∙3 5 + 2∙3 4 + 1∙3 3 + 2∙3 2 + 1 = 729 + 2∙243 + 2∙81 + 27 + 9 + 1 = 1414 10

    1414/7 = 202 (0) 202/7 = 28 (6) 28/7 = 4 (0) 4/7 = 0 (4)

    1221201 3 → 4060 7

    Родственные системы счисления

    Системы счисления называют родственными, когда их основания являются степенями одного числа. Например, 2, 4, 8, 16. Перевод между родственными системами счисления можно осуществлять, воспользовавшись таблицей

    Таблица для перевода между родственными системами счисления с базой 2
    10 2 4 8 16
    0 0000 000 00 0
    1 0001 001 01 1
    2 0010 002 02 2
    3 0011 003 03 3
    4 0100 010 04 4
    5 0101 011 05 5
    6 0110 012 06 6
    7 0111 013 07 7
    8 1000 020 10 8
    9 1001 021 11 9
    10 1010 022 12 A
    11 1011 023 13 B
    12 1100 030 14 C
    13 1101 031 15 D
    14 1110 032 16 E
    15 1111 033 17 F

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

    Для 123 4 единица подменяется на 01, двойка на 10, тройка нa 11, получаем 11011 2

    Для 5721 8 соответственно 101, 111, 010, 001, итого 101111010001 2

    Для E12 16 получим 111000010010 2

    Для перевода из двоичной системы следует разбить число на двойки (4-я), тройки (8-я) или четвёрки чисел (16-я), а затем подменить на соответствующие значения.

    Когда занимаешься настройками сетей различного масштаба и каждый день сталкиваешься с вычислениями – то такого рода шпаргалки заводить не обязательно, все и так делается на безусловном рефлексе. Но когда в сетях ковыряешься очень редко, то не всегда вспомнишь какая там маска в десятичной форме для префикса 21 или же какой адрес сети при этом же префиксе. В связи с этим я и решил написать несколько маленьких статей-шпаргалок по переводом чисел в различные системы счислений, сетевым адресам, маскам и т.п. В это части пойдет речь о переводи чисел в различные системы счислений.

    1. Системы счислений

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

    • Двоичная
    • Восьмеричная
    • Десятичная
    • Шестнадцатеричная

    1.1 Десятичная

    Так как цифры записаны в десятичной, перевод с десятичной в десятичную пропустим 🙂

    1.1.1 Десятичная → Двоичная

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


    Рисунок 1.1 – Перевод чисел из десятичной в двоичную систему


    Рисунок 1.2 – Перевод чисел из десятичной в двоичную систему

    Опишу деление числа 98. Мы делим 98 на 2, в результате имеем 49 и остаток 0. Далее продолжаем деление и делим 49 на 2, в результате имеем 24 с остатком 1. И таким же образом добираемся до 1-ки или 0-ка в делимом. Затем результат записываем справа налево.

    1.1.2 Десятичная → Восьмеричная

    Восьмеричная система – это целочисленная система счисления с основанием 8. Т.е. все числа в ней представлены диапазоном 0 – 7 и для перевода с десятичной системы нужно использовать деление по модулю 8.


    Рисунок 1.3 – Перевод чисел из десятичной в восьмеричную систему

    Деление аналогично 2-чной системе.

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

    Шестнадцатеричная система почти полностью вытеснила восьмеричную систему. У нее основание 16, но используются десятичные цифры от 0 до 9 + латинские буквы от A(число 10) до F(число 15). С ней вы сталкиваетесь каждый раз, когда проверяете настройки сетевого адаптера — это МАС-адрес. Так же, когда используется IPv6.


    Рисунок 1.4 – Перевод чисел из десятичной в шестнадцатеричную систему

    1.2 Двоичная

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

    1.2.1 Двоичная → Десятичная

    Для перевода чисел с двоичной формы в десятичную нужно знать два нюанса. Первый – у каждого нолика и единички есть множитель 2 в n-й степени, при котором n увеличивается справа налево ровно на единичку. Второй – после перемножения все числа нужно сложить и мы получим число в десятичной форме. В итого у нас будет формула такого вида:

    D = (a n × p n-1) + (a n-1 × p n-2) + (a n-2 × p n-3) +…, (1.2.1)

    Где,
    D – это число в десятичной форме, которое мы ищем;
    n – количество символов в двоичном числе;
    a – число в двоичной форме на n-й позиции (т.е. первый символ, второй, и т.п.);
    p – коэффициент, равный 2,8 или 16 в степени n (в зависимости от системы счисления)

    К примеру возьмем число 110102. Смотрим на формулу и записываем:

    • Число состоит из 5 символов (n =5)
    • a 5 = 1, a 4 = 1, a 3 = 0, a 2 = 1, a 1 = 0

    • p = 2 (так как переводим из двоичной в десятичную)

    В итоге имеем:

    D = (1 × 2 5-1) + (1 × 2 5-2) + (0 × 2 5-3) + (1 × 2 5-4) + (0 × 2 5-5) = 16 + 8 + 0 + 2 + 0 = 26 10

    Кто привык записывать справа на лево, форму будет выглядеть так:

    D = (0 × 2 5-5) + (1 × 2 5-4) + (0 × 2 5-3) + (1 × 2 5-2) + (1 × 2 5-1) = 0 + 2 + 0 + 8 + 16 = 26 10

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


    Рисунок 1.5 – Перевод чисел из двоичной в десятичную систему

    1.2.2 Двоичная → Восьмеричная

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

    10101001 = 0 10 101 001

    1011100 = 00 1 011 100

    Каждая группа битов – это одно из восьмеричных чисел. Чтобы узнать какое, нужно использовать написанную выше формулу 1.2.1 для каждой группы битов. В результате мы получим.


    Рисунок 1.6 – Перевод чисел из двоичной в восьмеричную систему

    1.2.3 Двоичная → Шестнадцатеричная

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

    110101011 = 000 1 1010 1011

    1011100 = 0 101 1100

    001010000 = 00 0101 0000 = 0101 0000

    Каждая группа битов – это одно из шестнадцатеричных чисел. Используем формулу 1.2.1 для каждой группы битов.


    Рисунок 1.7 – Перевод чисел из двоичной в шестнадцатеричную систему

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

    В этой системе у нас могут возникнуть сложности только при переводе в 16-ричную систему, так как остальной перевод проходит гладко.

    1.3.1 Восьмеричная → Двоичная

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


    Рисунок 1.8 – Шпора по переводу чисел из восьмеричной системы

    Используя эту табличку переведем наши числа в двоичную систему.


    Рисунок 1.9 – Перевод чисел из восьмеричной в двоичную систему

    Немного опишу вывод. Первое число у нас 142, значит будет три группы по три бита в каждой. Юзаем шпору и видим, что цифра 1 это 001, цифра 4 это 100 и цифра 2 это 010. В результате имеем число 001100010.

    1.3.2 Восьмеричная → Десятичная

    Здесь мы используем формулу 1.2.1 только с коэффициентом 8 (т.е. p=8). В результате имеем


    Рисунок 1.10 – Перевод чисел из восьмеричной в десятеричную систему

    • Число состоит из 3 символов (n =3)
    • a 3 = 1, a 2 = 4, a 1 = 2

    • p = 8 (так как переводим из восьмеричной в десятичную)

    В результате имеем:

    D = (1 × 8 3-1) + (4 × 8 3-2) + (2 × 8 3-3) = 64 + 32 + 2 = 98 10

    1.3.3 Восьмеричная → Шестнадцатеричная

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


    Рисунок 1.11 – Шпора по переводу чисел из шестнадцатеричной системы

    Эта табличка поможет перевести из двоичной в шестнадцатеричную систему. Теперь переведем наши числа.


    Рисунок 1.12 – Перевод чисел из восьмеричной в шестнадцатеричную систему

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

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

    1.4.1 Шестнадцатеричная → Двоичная

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


    Рисунок 1.13 – Перевод чисел из шестнадцатеричной в двоичную систему

    Возьмем первое число – 62. Используя табличку (рис. 1.11) мы видим, что 6 это 0110, 2 это 0010, в результате имеем число 01100010.

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

    Здесь мы используем формулу 1.2.1 только с коэффициентом 16 (т.е. p=16). В результате имеем


    Рисунок 1.14 – Перевод чисел из шестнадцатеричной в десятеричную систему

    Возьмем первое число. Исходя из формулы 1.2.1:

    • Число состоит из 2 символов (n =2)
    • a 2 = 6, a 1 = 2

    • p = 16 (так как переводим из шестнадцатеричной в десятичную)

    В результате имеем.

    D = (6 × 16 2-1) + (2 × 16 2-2) = 96 + 2 = 98 10

    1.4.3 Шестнадцатеричная → Восьмеричная

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


    Рисунок 1.15 – Перевод чисел из шестнадцатеричной в восьмеричную систему

    В пойдет речь о IP-адресах, масках и сетях.

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

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

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

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

      При переводе двоичного числа в десятичное требуется представить двоичное число в виде многочлена , каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $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.

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

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

    Можно сформулировать алгоритм перевода целых чисел из системы с основанием p в систему с основанием q :

    1. Основание новой системы счислениявыразитьцифрамиисходной системы счисления ивсепоследующие действия производить в исходной системе счисления.

    2. Последовательно выполнять деление данного числаиполучаемых целых частных на основание новой системы счисления до тех пор, пока не получим частное, меньшее делителя.

    3. Полученныеостатки,являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.

    4. Составить число в новой системе счисления, записывая его, начиная с последнего остатка.

    Пример 2.12. Перевестидесятичное число 173 10 в восьмеричную систему счисления:

    Получаем:173 10 =255 8

    Пример 2.13. Перевести десятичное число 173 10 в шестнадцатеричную систему счисления:

    Получаем: 173 10 =AD 16 .

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

    Получаем: 11 10 =1011 2 .

    Пример 2.15. Иногда более удобно записать алгоритм перевода в форме таблицы. Переведем десятичное число 363 10 в двоичное число.

    Делитель

    Получаем: 363 10 =101101011 2

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

    Можно сформулировать алгоритм перевода правильнойдроби с основанием p в дробь с основанием q:

    1. Основание новой системы счислениявыразитьцифрамиисходной системы счисленияивсепоследующие действия производить в исходной системе счисления.

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

    3. Полученные целые части произведений,являющиеся цифрами числа в новой системе счисления,привести в соответствие с алфавитомновой системы счисления.

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

    Пример 2.17. Перевести число 0,65625 10 в восьмеричную систему счисления.

    Получаем: 0,65625 10 =0,52 8

    Пример 2.17. Перевести число 0,65625 10 вшестнадцатеричнуюсистему счисления.

    x 16

    Получаем: 0,65625 10 =0,А8 1

    Пример 2.18. Перевестидесятичнуюдробь 0,5625 10 в двоичную систему счисления.

    x 2

    x 2

    x 2

    x 2

    Получаем: 0,5625 10 =0,1001 2

    Пример 2.19. Перевести в двоичную систему счисления десятичную дробь 0.7 10 .

    Очевидно, чтоэтот процесс может продолжаться бесконечно,давая все новые и новые знакивизображениидвоичногоэквивалентачисла 0,7 10 . Так,за четыре шага мы получаем число 0,1011 2 , а за семь шагов число 0,1011001 2 ,которое является более точным представлениемчисла 0,7 10 в двоичной системе счисления,и т.д.Такой бесконечный процесс обрывают на некотором шаге, когда считают, что получена требуемая точность представления числа.

    2.3.3. Перевод произвольных чисел

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

    Пример 2.20 . Перевести число 17,25 10 в двоичную систему счисления.

    Получаем: 17,25 10 =1001,01 2

    Пример 2.21. Перевести число 124,25 10 в восьмеричную систему.

    Получаем: 124,25 10 =174,2 8

    2.3.4. Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2 n и обратно

    Перевод целых чисел. Если основание q-ичной системы счисления является степеньючисла 2, топереводчисел из q-ичной системы счисления в 2-ичную и обратно можно проводить по более простым правилам. Для того, чтобы целое двоичное число записать в системе счисления с основанием q=2 n , нужно:

    1. Двоичное число разбить справа налево на группы по nцифр в каждой.

    2. Если в последней левой группе окажется меньше n разрядов, то ее надо дополнить слева нулями до нужного числа разрядов.

    Пример 2.22. Число 101100001000110010 2 переведем в восьмеричную систему счисления.

    Разбиваем число справа налево на триады и под каждой из них записываем соответствующую восьмеричную цифру:

    Получаем восьмеричное представление исходного числа: 541062 8 .

    Пример 2.23. Число 1000000000111110000111 2 переведем в шестнадцатеричную систему счисления.

    Разбиваем числосправа налево на тетрады и под каждой из них записываем соответствующую шестнадцатеричную цифру:

    Получаем шестнадцатеричноепредставлениеисходногочисла: 200F87 16 .

    Перевод дробных чисел. Длятого,чтобыдробное двоичное число записать в системе счисления с основанием q=2 n , нужно:

    1. Двоичное число разбить слева направо на группы по nцифр в каждой.

    2. Еслив последней правой группе окажется меньше n разрядов,то ее надо дополнить справа нулями до нужного числа разрядов.

    3. Рассмотреть каждую группу как n-разрядное двоичное число изаписать ее соответствующей цифрой в системе счисления с основанием q=2 n .

    Пример 2.24. Число0,10110001 2 переведем в восьмеричную систему счисления.

    Разбиваем число слева направо на триады и под каждой из них записываем соответствующую восьмеричную цифру:

    Получаем восьмеричное представление исходного числа: 0,542 8 .

    Пример 2.25. Число0,100000000011 2 переведем в шестнадцатеричную систему счисления. Разбиваем число слева направо на тетрады и под каждой из них записываем соответствующую шестнадцатеричную цифру:

    Получаем шестнадцатеричноепредставлениеисходногочисла: 0,803 16

    Перевод произвольных чисел. Для того, чтобы произвольное двоичное число записать в системе счисления с основанием q=2 n , нужно:

    1. Целую часть данногодвоичногочисларазбитьсправа налево, а дробную - слева направо на группы по n цифр в каждой.

    2. Если в последних левой и/или правой группах окажется меньше n разрядов, то их надо дополнить слева и/или справа нулямидо нужного числа разрядов;

    3.Рассмотретькаждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q=2 n

    Пример 2.26. Число 111100101,0111 2 переведем в восьмеричную систему счисления.

    Разбиваем целую и дробную части числа на триады и под каждой из них записываем соответствующую восьмеричную цифру:

    Получаем восьмеричное представление исходного числа: 745,34 8 .

    Пример 2.27. Число11101001000,11010010 2 переведем в шестнадцатеричную систему счисления.

    Разбиваем целую и дробную части числа на тетрадыи под каждой из них записываем соответствующую шестнадцатеричную цифру:

    Получаем шестнадцатеричное представление исходного числа: 748,D2 16 .

    Перевод чисел из систем счисления с основанием q=2 n в двоичную систему. Для того, чтобы произвольное число, записанное в системе счисления с основанием q=2 n , перевести в двоичную систему счисления, нужно каждую цифру этого числа заменить ее n-значным эквивалентом в двоичной системе счисления.

    Пример 2.28 .Переведем шестнадцатеричное число 4АС35 16 вдвоичную систему счисления.

    В соответствии с алгоритмом:

    Получаем: 1001010110000110101 2 .

    Задания для самостоятельного выполнения (Ответы )

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

    Двоичная

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

    Десятичная

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

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

    Двоичная

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

    Десятичная

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

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

    Двоичная

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

    Десятичная

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

    59,B