При решении огромного класса задач систем счисления требуется переход из одной системы счисления в другую. Решение этих задач, как правило, требует довольно большого объема вычислений. Поставим в Excel следующие задачи:
- Задано число в некоторой системе счисления, представить его в десятичной системе счисления;
- Задано десятичное число, представить его в системе счисления с базой Q.
- На базе решения двух предыдущих задач, можно решать задачи перехода из любой системы счисления в любую другую, задачи арифметики чисел, заданных в разных системах счисления.
Замечание. Пусть произвольная система счисления имеет базу не более 10. Данное ограничение упрощает решение задач именно в электронных таблицах Excel, так как цифры и база любой системы счисления (в данном случае) будут представлены в их десятичном эквиваленте.
Реализуем эти задачи в электронных таблицах EXCEL.
Задача № 1.
Задача №1. Задано число в системе счисления с базой Q. Определить десятичное представление заданного числа.
Решение.
Формирование входного и выходного потоков.
Из условия задачи имеем:
На выходе десятичное число.
На входе два числа:
- исходное число,
- база системы счисления, в которой задано исходное число.
Математическая модель.
Для решения поставленной задачи воспользуемся свойствами развернутой формы записи числа в заданной системе счисления, имеющей вид:
A(q) = a0 * q^0 + a1 * q^1 + a2 * q^2 + a3 * q^3 + … (1)
где:
q – база системы счисления, в которой задано число A(q);
a0, a1, a2, a3,… – цифры системы счисления с базой q.
Для q< = 10, a0, a1, a2, a3,…, q – даны в десятичном эквиваленте.
Для вычисления цифр (1) можно предложить следующую формулу, обоснование которой в общем виде дано в Приложении 1:
ai = ОСТАТ(ЦЕЛОЕ(A(q)/q^i);q) (2)
данная формула записана в синтаксисе функций EXCEL.
Задание на дом: можно ли в (2) ОСТАТ и ЦЕЛОЕ поменять местами, и если можно то как?
Алгоритм решения задачи.
Обобщая изложенное можно предложить следующий алгоритм решения задачи:
- вводятся исходное число и его база,
- с помощью (2) определяем цифры исходного числа,
- вычисляем для каждой цифры вклад в десятичное число согласно формулы:
Pi = ai * q^i (3) - Суммируем вклады и получаем десятичное представление исходного числа.
Тестирование алгоритма.
Для тестирования алгоритма можно предложить следующий пример:
Расчет дает, что 101011(2) 43(10).
Можно предложить любой другой.
Реализация алгоритма.
Данная задача реализуется в EXCEL
Таблицы.
Для данной задачи есть смысл использовать две таблицы:
- Таблица Ввода\Вывода, для ввода исходной информации и вывода результатов,
- Таблица расчетов.
Таблица Ввода\Вывода.
Эта таблица будет содержать значения входных и выходных данных и комментарии к ним.
А | В | |
1 | Комментарии | значения |
2 | ИСХОДНОЕ ЧИСЛО | <значение> |
3 | БАЗА системы счисления исходного числа | <значение> |
4 | РЕЗУЛЬТАТ | <формула> |
Расчетная таблица.
При ее решении необходимо помнить, что EXCEL рассматривает введенное число как десятичное, именно поэтому при определении цифр заданного числа в (2) необходимо использовать значение базы равной 10.
Согласно математической модели и свойства EXCEL, построим следующую таблицу расчетов.
A | B | C | D | E | F | G | |||
9 | КОММЕНТАРИИ | ||||||||
10 | Разряды цифр | 0 | 1 | 2 | 3 | 4 | 5 | ||
11 | ЦИФРЫ | = ОСТАТ(ЦЕЛОЕ($b$2/10^b10);10) | |||||||
12 | Вклад цифры | = b11*$b$3^b10 |
Провести протяжку формул, введенных в В11 и В12, по горизонтали. Диапазон протяжки формул ограничивается только адресом столбца IV (то есть концом строки таблицы) будем протягивать до столбца T.
Расчетная таблица готова.
Остается в ячейку В4 таблицы Ввода\Вывода ввести формулу
В4 [= СУММА(B12:T12)] (возможен диапазон вплоть до IV12).
Тестирование расчетной таблицы.
Для тестирования разработанной таблицы можно воспользоваться тестом алгоритма решения данной задачи. Для этого необходимо ввести в таблицу Ввода\Вывода в ячейку b2 значения исходного числа 101011 и в ячейку b3 значение базы системы счисления исходного числа – 2. Если в ячейке b4 появится число 43, то решение верно. Дополнительно, если в b3 ввести число 10, и в ячейке b4 должно появиться число 101011, то можно быть уверенным, что таблицы разработаны правильно и решение задачи верно.
А | В | |
2 | ИСХОДНОЕ ЧИСЛО | 101011 |
3 | БАЗА системы счисления исходного числа | 2(10) |
4 | РЕЗУЛЬТАТ | 43(101011) |
Задача решена.
Рис. 1
На данном рисунке приведен фрагмент таблицы Excel, где реализована задача № 1.
Задача № 2.
Задача № 2. Задано десятичное число и база системы счисления Q 10. Определить представление исходного числа в системе счисления с базой Q.
Решение.
Формирование входного и выходного потоков.
Из условия задачи имеем:
На выходе должно быть:
- число в заданной системе счисления с базой Q.
На входе два числа:
- исходное десятичное число,
- база системы счисления, в которой необходимо представить исходное число.
Математическая модель.
Рассмотрим математическую модель исходной задачи. Для перехода из десятичной системы счисления в систему счисления с базой q(10), исходной является развернутая форма записи числа в системе счисления с базой q – (1). А так как q, a0, a1, a2, a3,… даны в десятичном эквиваленте, то, проведя вычисления, получаем это число в десятичном представлении, то есть
A(q) = a0 * q^0 + a1 * q^1 + a2 * q^2 + a3 * q^3 + … А(10) (4)
Обращая формулу, получаем, что цифры системы счисления с базой q могут быть получены с помощью целочисленного деления исходного десятичного числа на базу q.
Мы вновь приходим к формуле (2) для определения цифр на этот раз результирующего числа, то есть в результате вычисления цифр получаем необходимый результат, записываемый в виде: an a(n-1) … a3a2 a1 a0 для базы q.
Алгоритм решения задачи.
Обобщая изложенное можно предложить следующий алгоритм решения задачи:
- вводятся исходное десятичное число и база системы счисления, в которую необходимо перевести исходное десятичное число;
- с помощью (2) определяем цифры исходного числа (база q),
- вычисляем для каждой цифры вклад в десятичное число согласно формулы:
Pi = ai * q^i (3) - Суммируем вклады и получаем результирующее число.
Тестирование алгоритма.
Для тестирования алгоритма можно использовать следующий пример:
Расчет дает , что 43(10). 101011(2)
Можно предложить любой другой.
Реализация алгоритма.
Данная задача реализуется в EXCEL.
Таблицы.
Для заданной задачи есть смысл использовать две таблицы:
- таблица Ввода\Вывода, для ввода исходной информации и вывода результатов,
- таблица расчетов.
Таблица Ввода\Вывода.
Эта таблица будет содержать значения входных данных и выходных и комментарии к ним.
А | В | |
1 | Комментарии | Значения |
2 | ИСХОДНОЕ ЧИСЛО | <значение> |
3 | БАЗА системы счисления результирующего числа | <значение> |
4 | РЕЗУЛЬТАТ | =<формула> |
Расчетная таблица.
Согласно математической модели можно построить следующую таблицу расчетов.
A | B | C | D | E | F | G | |||
9 | КОММЕНТАРИИ | ||||||||
10 | Разряды цифр | 0 | 1 | 2 | 3 | 4 | 5 | ||
11 | ЦИФРЫ | = ОСТАТ(ЦЕЛОЕ($b$2/$b$3^b10);$b$3) |
|||||||
12 | Вклад цифры | = b11*10^b10 |
Протяжка формул проводится до столбца Т, но можно и до IV
В ячейку b4 вводится формула В4 [= СУММ(B12:T12)].
Расчетная таблица готова.
Тестирование расчетной таблицы.
Для тестирования необходимо ввести во таблицу Ввода\Вывода значения исходного десятичного числа и базы системы счисления, в которой необходимо представить исходное число и проверить полученный результат, например:
А | В | |
2 | ИСХОДНОЕ ЧИСЛО | 33 |
3 | БАЗА системы счисления исходного числа | 2 |
4 | РЕЗУЛЬТАТ | 100001 |
Дополнительно, если в В3 ввести 10, то в В4 должно появиться число 33. Если это так, то построение верно.
Задача решена.
Рис. 2
На данном рисунке приведен фрагмент таблицы Excel, где реализована задача № 2.
С помощью этих двух задач можно провести вычисления перехода
(Q) (10) (q)
Здесь Q,q 10 – любые базы систем счисления (но не превосходящих 10).
Для этого вначале решаем задачу перехода Q (10), а затем задачу (10) (q).
И в заключении выполнить задание, данное в Приложении 2.
Заключение.
Как показала практика, для представления данного материала требуется два часа и лучше, если это будет спаренный урок, то есть два академических часа подряд.
На данном уроке рассмотрено решение двух задач, используя которые можно с помощью компьютера:
- Переходить из одной системы счисления в другую.
- Проводить арифметические операции над числами разных систем счисления.
- Сопоставлять два числа, заданных в разных системах счисления.