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

Предположим, нам необходимо перевести число 13,25 из десятичной системы счисления в двоичную. Начнем с того, что переведем целую часть:
1310=11012
Теперь займемся дробной. Дробная часть нашего числа равна 0,25.
  1. Умножим дробную часть на основание системы счисления, в которую мы хотим ее перевести и отделим целую часть полученного числа: 0,25*2=0,5. Целая часть равна 0, дробная часть равна 0,5.
  2. Снова умножим дробную часть на основание системы счисления, в которую хотим перевести число: 0,5*2=1. Целая часть равна 1, дробная - нулю. Поскольку дробная часть обнулилась, умножать больше нет необходимости.
  3. Выпишем теперь полученные нами целые части в порядке получения: 01. Т.е дробная часть десятичного числа 13,25 равна 0,01.
Соединим целую и дробную часть изначального числа:
13,2510=1101,012
Ответ:
13,2510=1101,012
Примечание: Далеко не всегда возможно перевести число до конца. В результате перевода вполне может получиться периодическая дробь.
Пример: переведем число 0,2 в двоичную систему счисления:
  1. 0,2*2=0,4. Целая часть равна 0. Дробная часть равна 0,4
  2. 0,4*2=0,8. Целая часть равна 0. Дробная часть равна 0,8
  3. 0,8*2=1,6. Целая часть равна 1. Дробная часть равна 0,6
  4. 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