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

Получение десятичного эквивалента q-ичного числа

Если требуется записать десятичный эквивалент q-ичного числа, то это число следует представить в систематической форме (*), после чего выполнить арифметические операции над числами в десятичной системе счисления.

Пример:

A50D,0B16=A·163+5·162+0·161+D·160+0·16-1+B·16-2=10·4096+5·256+13+11·0,00390625=

=42253,04296875

101,112=1·22+0·21+1·20+1·2-1+1·2-2=4+1+0,5+0,25=5,75

Перевод целых чисел

Алгоритм перевода целого числа состоит в делении исходного числа на основании новой системы счисления. Остаток представляет младший разряд числа. Полученное частное вновь делится на основание системы счисления. Остаток дает более старший разряд числа. И так до тех пор, пока в частном не окажется число, равное нулю (или пока не получится частное, меньшее основания новой системы счисления). Следует заметить, что все операции производятся в старой системе счисления.

Пусть, например, необходимо перевести число 91 в двоичную систему счисления. Последовательно деля его на 2, получаем:

Т.е., 9110 = 10110112.

Перевод в восьмеричную и в шестнадцатеричную систему счисления может быть произведен следующим образом:

Т.е., 9110=1338 и 9110=5B16.

Перевод дробных чисел.

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

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

В общем случае количество знаков t, которое необходимо получить в дробной части числа в новой системе счисления , где l – количество знаков после запятой у переводимого числа, g – основание системы счисления из которой переводится число, p - основание системы счисления в которую переводится число.

Пример: 0,39710 = 0,0110012.

0,397·2=0,794 (0)

0,794·2=1,588 (1)

0,588·2=1,176 (1)

0,176·2=0,357 (0)

0,357·2=0,704 (0)

0,704·2=1,408 (1)

В примере количество знаков, которое необходимо получить в дробной части числа должно быть минимум 10 ( , t≈3·3,3 l=3).

Пример: 0,7510=0,112

0,75·2=1,5 (1)

0,5·2=1,0 (1)

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

Табличный способ перевода.

Поскольку 8 = 23, а 16=24, то существует очень простой метод перевода двоичных чисел в восьмеричную систему счисления и наоборот.

Для перехода от двоичного представления числа к восьмеричному необходимо разбить двоичное число влево и вправо от запятой на группы из 3 цифр (триады), каждой триаде поставить в соответствие его восьмеричный эквивалент:

Пусть, например, N = 1010111011100,101112.

Можно записать:

N = (001)(010)(111)(011)(100),(101)(110), т.е. в восьмеричном представлении N = 12734,568. И соответственно, наоборот, для перехода от восьмеричного представления к двоичному каждой цифре восьмеричного числа ставят в соответствие его двоичный эквивалент триаду и затем записывают последовательность триад. Например, 25438 = (010)(101)(100)(011) = 101011000112.

Для перехода от двоичного представления числа к шестнадцатеричному, необходимо разбить двоичное число влево и вправо от запятой на группы из 4 цифр (тетрады), каждой тетраде поставить в соответствие его шестнадцатеричный эквивалент:

Пусть, например, N = 1010111011100,101112.

Можно записать:

N =(0001)(0101)(1101)(1100),(1011)(1000), т.е. в шестнадцатеричном представлении N = 15DC,B816.

Соответствие между разрядами десятичной, шестнадцатеричной и двоичной систем счисления смотри в таблице.

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

Пример: перевести число 2DA,C116 в восьмеричную систему счисления.

Предварительно переведем это число в двоичную систему счисления.

Каждая цифра исходного шестнадцатеричного числа переводится в соответствующую ей цифровую тетраду (24=16) в двоичной системе счисления в обе стороны от запятой:

0010 1101 1010,1100 00012

Для перевода из двоичной системы счисления в восьмеричную в получившемся двоичном числе в обе стороны от запятой выделяем группы по три (23=8) цифры:

(001)(0 11)(01 1)(010),(110)(0 00)(010)2

и находим их восьмеричные эквиваленты в соответствии с таблицей: 1332,6028.

Так в одном из примеров было получено: 9110 = 10110112, поэтому для представления 91 в восьмеричной системе счисления, воспользуемся двоичным эквивалентом этого числа: (001)(011)(011)2 (число разбили на триады), откуда 9110 = 1338. А для представления 91 в 16-ой системе счисления, разобьем его двоичный эквивалент на тетрады (0101)(1011)2, откуда 9110 = 5(11)16=5B16.

 



lude $_SERVER["DOCUMENT_ROOT"]."/cgi-bin/footer.php"; ?>