Перевод дробных положительных чисел из десятичной системы счисления в любую другую
Предположим, нам необходимо перевести число 13,25 из десятичной системы счисления в двоичную. Начнем с того, что переведем целую часть: 1310=11012
Теперь займемся дробной. Дробная часть нашего числа равна 0,25.
Умножим дробную часть на основание системы счисления, в которую мы хотим ее перевести и отделим целую часть полученного числа: 0,25*2=0,5. Целая часть равна 0, дробная часть равна 0,5.
Снова умножим дробную часть на основание системы счисления, в которую хотим перевести число: 0,5*2=1. Целая часть равна 1, дробная - нулю. Поскольку дробная часть обнулилась, умножать больше нет необходимости.
Выпишем теперь полученные нами целые части в порядке получения: 01. Т.е дробная часть десятичного числа 13,25 равна 0,01.
Соединим целую и дробную часть изначального числа: 13,2510=1101,012
Ответ: 13,2510=1101,012 Примечание: Далеко не всегда возможно перевести число до конца. В результате перевода вполне может получиться периодическая дробь.
Пример: переведем число 0,2 в двоичную систему счисления:
0,2*2=0,4. Целая часть равна 0. Дробная часть равна 0,4
0,4*2=0,8. Целая часть равна 0. Дробная часть равна 0,8
0,8*2=1,6. Целая часть равна 1. Дробная часть равна 0,6
0,6*2=1,2. Целая часть равна 1. Дробная часть равна 0,2
Мы пришли к тому же, с чего начали. Отсюда вывод: в двоичной системе счисления дробь 0,210 является периодической и равна 0,(0011)2 В случае, если при переводе получается бесконечная дробь, перевод обычно заканчивают на определение периода или на достижении необходимой точности (нужного кол-ва знаков после запятой)
Пусть Ац - правильная десятичная дробь
,тогда его можно записать в виде:
Адр = а -1 х 2 -1 + а -2 х 2 -2
+...
Если Адр умножить на 2 , то в правой части
получим а -1 + а -2 х 2 -1 + а-3 х
2 -2 +...,
где а-1 - целая часть, она и даст нам
старший коэффициент в разложении числа Адр
по степеням 2. Оставшуюся дробную часть снова
умножим на 2 и получим а -2 + а-3 х 2 -1
+... , где а-2 - второй коэффициент после
запятой в двоичном представлении числа. Процесс
продолжить до тех пор, пока в правой части не
получим 0 или не будет достигнута требуемая
точность вычислений.
Рассмотрим самое обычное число, записанное в самой обычной, привычной нам десятичной системе счисления.
Например, пусть это будет число 4269.
Когда-то давным-давно, в далекой гала... в смысле, в начальной школе, мы учились раскладывать это число на разрядные слагаемые. Выглядело это примерно так:
4269 = 9+60+200+4000.
Несложно, правда? Ну а мы пойдем еще чуть дальше: 9+60+200+4000=9*1+6*10+2*100+4*1000.
Продолжим измываться над числом:
9*1+6*10+2*100+4*1000=9*100+6*101+2*102+4*103(Примечание для забывчивых и просто не любящих математику: ЛЮБОЕ ЧИСЛО В НУЛЕВОЙ СТЕПЕНИ РАВНО ЕДИНИЦЕ!)
Обратим внимание, что у каждого разряда множителем является степень десятки. А почему? Логично предположить, что эта десятка - основание системы счисления, в которой записано число. Именно с помощью подобного разложения числа и переводятся из любой системы счисления в десятичную.
Пример 1.
Примечание 1: При разложении мы двигаемся с конца числа Примечание 2: Все разряды мы умножаем на основание системы счисления в соответствующей степени
Задача: Перевести число 110011012 из двоичной системы счисления в десятичную. Разложим это число на разрядные слагаемые. Поскольку число записано в двоичной системе счисления, то и умножать мы будем на двойку в соответствующей степени: 110011012 = 1*20+0*21+1*22+1*23+0*24+0*25+1*26+1*27.
Вычислим эту длинную сумму: 1+0+4+8+0+0+64+128 = 205
Ответ: 110011012 = 20510
Пример 2.
Задача: Перевести число 176428 из восьмеричной системы счисления в десятичную. Разложим это число на разрядные слагаемые. Поскольку число записано в восьмеричной системе счисления, то и умножать мы будем на восьмерку в соответствующей степени: 17642 =
2*80+4*81+6*82+7*83+1*84
Вычислим эту длинную сумму: 2+32+384+3584+4096 = 8098
Ответ: 176428 = 809810
Пример 3.
Задача: Перевести число FB5A16 из шестнадцатеричной системы счисления в десятичную. Разложим это число на разрядные слагаемые. Поскольку число записано в шестнадцатеричной системе счисления, то и умножать мы будем на шестнадцать в соответствующей степени: FB5A =
A*160+5*161+B*162+F*163
Все цифры выше 9 в шестнадцатеричной системе счисления записываются буквами: 10 - А, 11 - В, 12 - С, 13 - D, 14 - Е, 15 - F. Заменим буквы на цифры:
10*160+5*161+11*162+15*163
Вычислим эту длинную сумму: 10+80+2816+61440 = 64346
Ответ: FB5A16 = 6434610
Задание 1.
Задача: Перевести число 110102 из двоичной системы счисления в десятичную.
Ражложим число с конца: 110102=0*20+1*21+0*22+1*23+1*24 = 0+2+0+8+16 = 26
Ответ: 110102 = 2610
Задание 2.
Задача: Перевести число 1378 из восьмеричной системы счисления в десятичную.
Ражложим число с конца: 1378=7*80+3*81+8*22 = 7+24+64= 95
Ответ: 1378 = 9510
Задание 3.
Задача: Перевести число 1A16 из шестнадцатеричной системы счисления в десятичную.
Ражложим число с конца: 1A16=A*160+1*161= 10*160+1*161= 10+16 = 26
Ответ: 1A16 = 2610