Перевод в десятичную систему счисления¶
Перевод в десятичную систему счисления — это процедура приведения числа, записанного в любой позиционной системе счисления (двоичной, восьмеричной, шестнадцатеричной и т. д.), к его представлению в десятичной системе с основанием 10. Основана на разложении числа по степеням основания системы и суммировании слагаемых.
¶Основа метода
Любое позиционное число можно представить в виде суммы произведений цифр на соответствующие степени основания системы. Если число записано в системе с основанием b и имеет вид:
dₙdₙ₋₁...d₁d₀.d₋₁d₋₂...
то его значение в десятичной системе вычисляется по формуле:
N = dₙ·bⁿ + dₙ₋₁·bⁿ⁻¹ + ... + d₁·b¹ + d₀·b⁰ + d₋₁·b⁻¹ + d₋₂·b⁻² + ...
Здесь dᵢ — цифры числа (для оснований больше 10 используются буквы: A=10, B=11, C=12, D=13, E=14, F=15), а степени основания определяют разрядный вес каждой цифры.
¶Перевод целой части
Для целой части числа алгоритм прост: цифры умножаются на соответствующие степени основания слева направо, начиная со старшего разряда, и результаты суммируются.
Пример 1. Перевод двоичного числа 11011₂ в десятичную:
- 1·2⁴ = 16
- 1·2³ = 8
- 0·2² = 0
- 1·2¹ = 2
- 1·2⁰ = 1
Сумма: 16 + 8 + 0 + 2 + 1 = 27₁₀.
Пример 2. Перевод восьмеричного числа 347₈:
- 3·8² = 192
- 4·8¹ = 32
- 7·8⁰ = 7
Сумма: 192 + 32 + 7 = 231₁₀.
Пример 3. Перевод шестнадцатеричного числа 1A3F₁₆:
- 1·16³ = 4096
- A·16² = 10·256 = 2560
- 3·16¹ = 48
- F·16⁰ = 15·1 = 15
Сумма: 4096 + 2560 + 48 + 15 = 6719₁₀.
¶Перевод дробной части
Дробная часть переводится аналогично, но степени основания становятся отрицательными: первая цифра после запятой умножается на b⁻¹, вторая — на b⁻² и так далее.
Пример. Перевод двоичного числа 101.11₂:
- 1·2² = 4
- 0·2¹ = 0
- 1·2⁰ = 1
- 1·2⁻¹ = 0.5
- 1·2⁻² = 0.25
Сумма: 4 + 0 + 1 + 0.5 + 0.25 = 5.75₁₀.
¶Альтернативный метод «на столбиком» (последовательное умножение)
Для целой части существует эквивалентный итеративный алгоритм, удобный для вычислений от руки и для реализации в программах:
- Запомнить результат
res = 0. - Для каждой цифры числа слева направо:
res = res·b + dᵢ. - После обработки всех цифр
resсодержит значение в десятичной системе.
Пример. Число 11011₂:
- res = 0·2 + 1 = 1
- res = 1·2 + 1 = 3
- res = 3·2 + 0 = 6
- res = 6·2 + 1 = 13
- res = 13·2 + 1 = 27
Результат тот же: 27₁₀. Этот метод особенно практичен, поскольку не требует вычисления степеней.
¶Особые случаи
¶Перевод из двоичной системы
Двоичные числа переводятся в десятичные наиболее часто — это основа представления данных в компьютерах. Краткая таблица степеней двойки ускоряет вычисления:
| Степень | 2⁰ | 2¹ | 2² | 2³ | 2⁴ | 2⁵ | 2⁶ | 2⁷ | 2⁸ | 2⁹ | 2¹⁰ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Значение | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
¶Перевод из шестнадцатеричной системы
Поскольку 16 = 2⁴, каждая шестнадцатеричная цифра соответствует ровно четырём двоичным. Это позволяет переводить двоичные числа в шестнадцатеричные и обратно через промежуточное десятичное представление или напрямую, группируя биты по четыре.
¶Отрицательные числа
Знак числа не зависит от системы счисления и переносится в результат без изменений. Метод применяется к модулю числа, после чего восстанавливается знак.
¶Проверка результата
Для проверки перевода выполняется обратная операция — перевод десятичного числа в исходную систему. Целая часть делится на основание b с записью остатков в обратном порядке, дробная — умножается на b с записью целых частей. Совпадение с исходным числом подтверждает корректность перевода.
¶Применение
Перевод между системами счисления применяется в информатике при работе с файловыми форматами, сетевыми адресами (IPv6 записывается в шестнадцатеричном виде), цветовыми моделями (коды цветов HTML) и машинном коде. В учебных целях перевод между системами входит в программы курса информатики и является типовой задачей на ЕГЭ по информатике.
¶Источники
- Виленкин Н. Я., Жохов В. И. «Информатика. 7 класс»
- Еремеева В. С., Захарова И. Ю. «Информатика. 8 класс»
- Русаков А. Г. «Информатика. Базовый курс»
- Кларк К., Пауэлл Д., Токаз С. «Архитектура компьютера»
