Системы счисления. Перевод чисел из одной системы счисления в другую
Понятие системы счисления.
Компьютер любую информацию представляет в двоичной системе счисления. Для сокращения записи машинной информации используют шестнадцатеричную систему счисления. Иногда мы в своей деятельности сталкиваемся с римской системой счисления. Поэтому разумно остановиться на некоторых сведениях, касающихся систем счисления.
Система (system) – набор объектов и отношений между ними, образующий единое целое. Под системой счисления (numeration system, notation) понимают совокупность средств и способов записи чисел.
Система счисления строится на основе нескольких положений:
§ Выбираются некоторые разные целые числа b1, b2,b3..., bk, … В этой системе счисления любое число по определенному правилу выражается через выбранные числа. Их называют базовыми числами системы счисления. Совокупность базовых чисел образует базу системы счисления: B={b1, b2, b3,..., bk, …}.
§ Каждому базовому числу сопоставляется значок, называемый цифрой (bi => ci). Причем ci ≠cj , если i≠j. Набор цифр образует алфавит системы счисления:
|
|
C ={c1, c2,…, ck,… }.
§ Любое число X в системе счисления по определённому правилу выражается через базовые числа и записывается в виде последовательности цифр, сопоставленных базовым числам, участвующим в выражении: αL…α3α2α1α0. Вклад цифры в число – ее значение, величина числа равна сумме значений цифр, участвующих в его записи: X=сумма значений αi.
§ База системы счисления и правило, по которому число X выражается через базовые числа, должны быть такими, чтобы любое число можно было выразить через базовые числа единственным образом.
Системы счисления делят на непозиционные и позиционные. Основное различие между ними в том, что понимается под значением цифры записи числа. В непозиционной системе счисления значение цифры совпадает с соответствующим ей элементом базы.
Общеизвестная римская система счисления является непозиционной. В ней
§ B={1, 5, 10, 50, 100, 500, 1000, …};
C={I, V, X, L, C, D, M, …}.
§ Значение цифры записи числа равно соответствующему элементу базы со знаком плюс или минус.
§ Со знаком минус могут быть взяты элементы базы, являющиеся степенями десяти (1, 10, 100, …). Знак минус приписывается элементу базы b, если следующей цифре в записи числа соответствует больший элемент базы b1 (причем b1 может быть равен только 5*b или 10*b). Иначе элементу базы, соответствующему цифре, приписывается знак плюс. Перед цифрой, порождающей слагаемое с минусом, должна стоять цифра, порождающая слагаемое с плюсом.
§ Слагаемые с плюсом могут порождать идущие подряд не более трех одинаковых цифр с элементами базы, являющимися степенями десяти (1, 10, 100, …) или одна цифра с элементом базы 5, 50, 500,….
|
|
Поэтому для получения записи числа Х его следует представить в виде алгебраической суммы базовых чисел от больших к меньшим с учетом приведенных выше правил. Например, CCXLIX – запись числа 100+100-10+50-1+10=249. Римская запись числа 786= > 500+100+100+50+10+10+10+5+1 = DCCLXXXVI. В римской системе счисления запись числа является громоздкой, правила выполнения операций сложные, алфавит неограничен.
Задачи
a) Получить десятичную запись римских чисел: CMXLVIII, CCXLII.
b) Разработать и описать алгоритм получения десятичного числа по его римской записи.
c) Получить римскую запись десятичных чисел: 1674, 3899.
d) Разработать и описать алгоритм получения римской записи десятичного числа.