Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Наибольшую цифру восьмеричного разряда (78) можно представить двоичной триадой — трехзначным двоичным числом ( 1112), а наибольшую цифру шестнадцатеричной ( F16) - двоичной тетрадой — четырехзначным (  11112) двоичным числом. Для того чтобы преобразовать восьмеричное представление числа в двоичное, достаточно заменить каждую его цифру двоичной триадой, например:

 

3.148 = 011.001 1002=11.001 12

Для перевода шестнадцатеричного числа в двоичное представление следует каждую шестнадцатеричную цифру заменить двоичной тетрадей:

A.BC16=1010.1011 11002

Несложно вывести правило обратного преобразования двоичных чисел в восьмеричное или шестнадцатеричное представление. Для этого целое двоичное число разбивается на триады /тетрады‚ начиная с младшего, самого правого двоичного разряда. Если двоичное число не целое, а дробное, разбиение производится влево и вправо от десятичной точки:

100111.0010012 = 47.118 = 27.2416.

Для преобразования чисел между системами по основаниям 2, 8, 10 и 16 можноиспользовать данную таблицу

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

Для перевода из двоичной системы в восьмеричную систему счисления необходимо его представление разбить на триады, подписать степени двойки,  начиная с 1 (то есть цифры 1,2,4), под каждой триадой и сложить те числа, стоящие под единицами (все это по триадам). Таким образом в каждой триаде получится число <8, вместе эти цифры и образуют представление данного двоичного числа в восьмеричной системе (Извиняюсь за почерк).

Аналогичным способом можно перевести из двоичной системы в шестнадцатеричную систему. Также разбиваем разбиваем двоичное представление числа по тетрадам, подписываем под каждым числом степень двойки (то есть цифры 1,2,4,8)  и слагаем те цифры, над которыми стоят единицы.

Для обратного преобразования можно воспользоваться обратными методами, а именно:

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

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

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

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

1) Ввести число D10

2) если D10 не равно нулю, разделить D10 на р10, записать целую часть частного M10 и остаток N10, иначе — завершить преобразование;

3) записать N10 с помощью соответствующей цифры р-ичной системы счисления в младший незаполненный разряд;

4) заменить D10 на M10 и вернуться к шагу 2.

Алгоритм обратного перевода целого числа из р-ичнои системы в десятичную выглядит так:

1. Положить k=0 (переменная — счетчик разрядов).

2. Положить М = О (переменная для хранения промежуточного результата; после завершения выполнения алгоритма М будет содержать результат преобразования)

3. Умножить k-тый справа разряд р-ичного числа на pk (напомню, что нумерация разрядов идет от нуля).

4. Результат прибавить к М.

5. Увеличить k на 1 и перейти к шагу 3.

6. Повторять шаги 3-5, пока не переберем все разряды р-ичного числа.

Этот алгоритм иногда называют методом умножения.

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

 

Более сложным является перевод правильной десятичной дроби D10 в р-ичную систему.  Правильная дробь — это дробное число, у которого целая часть равна нулю. Прежде всего, заметим, что такой перевод, возможно, не удастся выполнить абсолютно точно. Пусть необходимо выполнить преобразование с точностью до k знаков после десятичной точки, то есть с относительной точностью 1/(2рk). Алгоритм перевода будет таким.

1. Умножить D10 на р.

2. Целую часть произведения представить соответствующей цифрой р-ичного представления.

3. Умножать D10 на р до тех пор, пока не будет достигнута требуемая точность (получится р-ичное число k дробными разрядами) или дробная часть обратится в ноль.

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

Число Dp=dndn-1...d0.b1b2...bm ‚ записанное в р-ичной системе счисления, можно преобразовать в десятичное число по формуле

D10=dn*pn+dn-1*pn-1+...+d0*p0+b-1*p-1+b-2*p-2+...b-m*p-m

где di- разряды целой части, а bi— дробной.