Как перевести число из любой системы счисления в десятичную
Перейти к содержимому

Как перевести число из любой системы счисления в десятичную

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

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

Рассмотрим примеры.
1. Переведём число 101101,11 2 в десятичную систему счисления.
Запишем двоичное число в развёрнутой форме.

1 5 0 4 1 3 1 2 0 1 1 0 , 1 − 1 1 − 2 = 1 × 2 5 + 0 × 2 4 + 1 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 + 1 × 2 − 1 + 1 × 2 − 2 .

Вычислим результат.

1 × 32 + 0 × 16 + 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1 + 1 × 0,5 + 1 × 0,25 = = 32 + 0 + 8 + 4 + 0 + 1 + 0,5 + 0,25 = 45,75 .

Значит, 101101,11 2 \(=\) 45,75 10 .
2. Переведём число D3A8 , 9 16 в десятичную систему счисления.
Запишем развёрнутую запись числа.

D 3 3 2 A 1 8 0 , 9 − 1 = D × 16 3 + 3 × 16 2 + A × 16 1 + 8 × 16 0 + 9 × 16 − 1 = = 13 × 16 3 + 3 × 16 2 + 10 × 16 1 + 8 × 16 0 + 9 × 16 − 1 .

Вычислим результат.

13 × 4096 + 3 × 256 + 10 × 16 + 8 × 1 + 9 × 0,0625 = = 53248 + 768 + 160 + 8 + 0,5625 = 54184,5625 .

Значит, D3A8 , 9 16 \(=\) 54184,5625 10 .

3. В системе счисления с основанием \(n\) десятичное число \(17\) записывается в виде \(25\). Найди \(n\).

Запишем уравнение.
25 n = 2 × n 1 + 5 × n 0 = 17 10 .

Вычислим: любое число в нулевой степени равняется единице, поэтому 5 × n 0 будет равняться \(5\). \(17-5 = 12\), любое число в первой степени будет равняться самому числу, для того чтобы получить \(12\), нужно \(2\) умножить на \(6\).

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

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

  1. Разделить столбиком данное целое число на основание той системы счисления, в которую будет осуществлён перевод числа.
  2. Если полученный результат (частное или неполное частное) меньше чем указанное основание системы счисления, то переходим к шагу 3. Если полученный результат (частное или неполное частное) больше или равен основанию системы счисления, то делим результат на основание системы счисление.
  3. Получаем ответ: все полученные остатки + последний результат деления записываем в порядке, обратном порядку их получения.

В десятичную систему счисления

Чтобы выполнить перевод целого числа из любой позиционной системы счисления в десятичную, нужно представить число в виде суммы разрядных слагаемых. Цифры и разрядные единицы записываются в десятичной системе счисления.

37810 = 3 · 100 + 7 · 10 + 8 = 3 · 10 2 + 7 · 10 1 + 8 · 1.

Ниже представлены примеры перевода целых чисел из двоичной, восьмеричной и шестнадцатеричной систем в десятичную:

Список литературы | contact@izamorfix.ru
2018 − 2023 © izamorfix.ru

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

Решение получаем с помощью калькулятора. Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
1101010 = 2 6 *1 + 2 5 *1 + 2 4 *0 + 2 3 *1 + 2 2 *0 + 2 1 *1 + 2 0 *0 = 64 + 32 + 0 + 8 + 0 + 2 + 0 = 106

Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда
1101 = 2 -1 *1 + 2 -2 *1 + 2 -3 *0 + 2 -4 *1 = 0.8125
Таким образом, число 1101010,11012 в десятичной системе счисления записывается как 106,8125.

Пример 2. Перевести число 42,678 в десятичное представление.
Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
42 = 8 1 *4 + 8 0 *2 = 32 + 2 = 34

Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда
67 = 8 -1 *6 + 8 -2 *7 = 0.859375

Таким образом, число 42,678 в десятичной системе счисления записывается как 34,859375.

Пример 3. Перевести число E6,7116 в десятичное представление.
Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
E6 = 16 1 *14 + 16 0 *6 = 224 + 6 = 230

Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда
71 = 16 -1 *7 + 16 -2 *1 = 0.44140625
Таким образом, число E6,7116 в десятичной системе счисления записывается как 230,44140625.

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

Однажды потребовалось из шестнадцатеричной строки вида «0000FF6A9B4» получить число в десятичной системе счисления. Поиск привел к //infostart.ru/public/70053/ но в этой статье мы видим обратный перевод из десятичной в другую систему. Пришлось писать собственными лапами. В прилагающейся обработке для управляемых форм 8.2. лежит пример перевода. Если изменить шаблон с «0123456789ABCDEF» на «0123456789» — перевод будет происходить из десятичной на «01234567» — из восьмеричной системы счисления, «01» — двоичной. Для тех, кому лень качать обработку вот основной код: &НаКлиенте
Функция ИзХСчислВЧисло ( аф , Шаблон ) // Шаблон = «0123456789ABCDEF»
аф = ВРег ( аф ); // на всякий случай.
ДлинаШаблона = СтрДлина ( Шаблон );

ДлинаСтроки = СтрДлина ( аф );
ТекСимвол = ДлинаСтроки ;
Результат = 0 ;

Пока ТекСимвол > 0 Цикл
ОбработкаПрерыванияПользователя ();
ОбрабатываемыйСимвол = Сред ( аф , ТекСимвол , 1 );
ПозицияВШаблоне = Найти ( Шаблон , ОбрабатываемыйСимвол )- 1 ;
Результат = Результат + ( ПозицияВШаблоне * pow ( ДлинаШаблона , ДлинаСтроки — ТекСимвол ));
ТекСимвол = ТекСимвол — 1 ;
КонецЦикла;

Возврат( Результат );
КонецФункции UPD: Пользователь VUN предложил более компактный метод решения той же проблемы, без использования функции возведения в степень:
&НаКлиенте
Функция ИзХСчислВЧисло ( аф , Шаблон )
аф = ВРег ( аф ); // на всякий случай.
ДлинаШаблона = СтрДлина ( Шаблон );

ДлинаСтроки = СтрДлина ( аф );
Результат = 0 ;

Для ТекСимвол = 1 По ДлинаСтроки Цикл
ОбрабатываемыйСимвол = Сред ( аф , ТекСимвол , 1 );
ПозицияВШаблоне = Найти ( Шаблон , ОбрабатываемыйСимвол )- 1 ;
Результат = Результат * ДлинаШаблона + ПозицияВШаблоне ;
КонецЦикла;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *