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

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

    Как мы уже отмечали, человек привык работать в десятичной системе счисления, а ЭВМ ориентирована на двоичную систему. Поэтому общение человека с машиной невозможно без создания простых и надёжных алгоритмов перевода чисел из одной системы в другую и наоборот. Итак, как осуществить перевод чисел из десятичной системы в двоичную? 
    Допустим, надо перевести число 11 в двоичную систему счисления. Разделим 11 на 2. Получим частное 5 и остаток 1. Следовательно, в двоичной записи числа 11 последняя цифра равна 1. Для нахождения второй цифры разделим найденное нами частное 5 снова на 2. Получим частное 2 и остаток 1. Следовательно, вторая цифра с конца в двоичной записи числа 11 тоже равна 1. Частное 2 снова делим на 2. Получим 1 и 0 в остатке. Полученная 1 и есть первая цифра в двоичной записи числа 11. Остаток от последнего деления 0 - вторая цифра.

    Если необходимо преобразовать нецелое число - десятичную дробь, то производим следующие действия: 
    1. Целую часть числа преобразовываем в двоичную систему способом, описанным выше. 
    2. Дробную часть необходимо преобразовывать умножением на основание системы, в которую мы переводим число.

    В результате умножения дробной части - числа 0,7 на основание системы - число 2 получим 1,4. Целую часть данного числа (цифру 1) выделяем, а дробную часть - число 0,4 снова умножаем на 2. 
    Очевидно, что процесс перевода числа 0,7 может продолжаться бесконечно. Действительно, за шесть шагов мы можем получить число 0,101100, а за семь шагов получили бы 0,1011001, которое является более точным представлением числа 0,7 в двоичной системе. Такой бесконечный процесс обрывают на некотором шаге, когда считают, что получена требуемая точность представления числа. В результате перевода получим ответ:

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

 

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

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

    Для перевода чисел из двоичной системы счисления в системы, родственные двоичной, необходимо выполнить следующие действия: 
    1.Разбить число на некоторое количество разрядов, равное степени числа 2 основания системы, в которую переводим. 
    2.Если в старших и младших разрядах после разбиения не хватает знаков, то добавить их нулями. 
    3.По таблице определить значение пары, триады, тетрады и т.п. разрядов, записанных в двоичной системе счисления, соответственно значению в той системе, в которую переводим. 
    
Например, дано число 1111010111010,0111, записанное в двоичной системе счисления. Для перевода его в восьмеричную систему счисления разобьём число на триады (т.к. основание числа 2 равно 3), начиная от запятой, вправо и влево: 1.111.010.111.010,011.1 . Разбиение показано точками. В старшей и младшей триадах не хватает разрядов. Дополним их нулями: 001.111.010.111.010,011.100. По таблице определим восьмеричные цифры, соответствующие триадам. Получается восьмеричное число 17272,34. 
    Рассмотрим ещё один пример: дано число 1111010111010,0111, записанное в двоичной системе счисления. Для перевода его в шестнадцатеричную систему счисления разобьём число на тетрады (т.к. основание числа 2 равно 4): 1.1110.1011.1010,0111. В старшей тетраде не хватает разрядов. Дополним их нулями: 0001.1110.1011.1010,0111. По таблице определим шестнадцатеричные знаки, соответствующие тетрадам. Получается шестнадцатеричное число 1EBA,7. 
     Пусть дано то же число. Для перевода его в четверичную систему счисления разобьём число на пары (т.к. основание числа 2 равно 2): 1.11.10.10.11.10.10,01.11. В старшей паре не хватает одного разряда. Дополним его нулём: 01.11.10.10.11.10.10,01.11. Определим четверичные цифры, соответствующие парам. Получается четверичное число 1322322,13.

Как осуществить обратный перевод:

    Пусть дано число 73,62 , записанное в восьмеричной системе счисления. Необходимо перевести его в двоичную систему. Для этого каждую цифру числа запишем в виде триады из 0 и 1, соответствующей значению восьмеричной цифры в двоичной системе счисления: 111.011,110.010.

    Рассмотрим ещё один пример: дано число 7В3,Е6, записанное в шестнадцатеричной системе счисления. Необходимо перевести его в двоичную систему. Для этого каждую цифру шестнадцатеричного числа запишем в виде тетрады из 0 и 1,соответствующей значению знака в двоичной системе счисления: 0111.1011.0011,1110.0110.

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

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

    Если необходимо перевести двоичное число 1011011,11 в десятичную систему, воспользуемся этой формулой. Основание системы р=2, к - коэффициент, указывающий количество знаков в числе влево от запятой, к=7; а - знаки числа с соответствующими им коэффициентами.

    Воспользуемся формулой для перевода шестнадцатеричного числа ВF,1D в десятичную систему. Основание системы р=16, к=2.

    Пусть необходимо перевести восьмеричное число 254,262 в десятичную систему. Основание системы р=8, к=3

 

Источник информации

Информатика в школе



Hosted by uCoz