Следует отметить, что рассмотренный метод позволяет реализовать весьма экономичные, в смысле аппаратурных затрат, цифровые устройства преобразования информации.
§ 3. Восстановление позиционного представления числа по его остаткам
Система остаточных классов обладает одной особенностью, которую можно отнести к недостаткам этой системы: нельзя визуально определить величину числа, представленного в СОК, а следовательно затруднительно и выполнение таких операций, как сравнение чисел, определение знака числа. Один из путей решения этой проблемы состоит в преобразовании чисел из СОК в позиционную систему счисления. Оценим существующие способы перевода, как традиционные: метод ортогональных базисов; перевод числа в обобщенную позиционную систему (ОПС), так и недавно появившиеся интервальные методы перевода.
1). Метод восстановления числа по его остаткам был найден еще в Китае две тыс. лет назад. Основой этого метода является теорема, названная, поэтому Китайской теоремой об остатках (КТО).
Теорема. Пусть
– попарно взаимно простые числа, = , , , …, подобраны так, что 1 , = , . Тогда решение системы , , будет иметь вид: .Эта теорема лежит в основе метода ортогональных базисов при переводе из системы остаточных классов в позиционную систему счисления.
Пусть основания системы остаточных классов
; = = – объем диапазона системы. С выбором системы определяются ее основные константы – базисы , . Задача перевода числа = =( ) в ПСС заключается в определении таких чисел , , чтобы = . Для однозначного определения на базисы системы накладывается ряд ограничений и показывается, что таким свойством обладают базисы = (1, 0, 0, …, 0, 0), =(0, 1, 0, …, 0, 0), = (0, 0, 0, …, 0, 1),которые называются ортогональными.
Тогда в случае ортогональных базисов
= , . Ортогональные базисы определяются по формуле = , , (3.1´)где
= (3.2´) – целые положительные числа, которые называются весами базиса, их определяют из сравнений º 1 (3.3´)Тогда, по Китайской теореме, число
= ( ) .Таким образом, если найдены ортогональные базисы для системы оснований, то для перевода числа
= ( ) достаточно вычислить и ввести эту сумму в диапазон [0; ) вычитанием величины, кратной , т.е. = = – , (3.4´)где
– ранг числа , показывающий сколько раз надо вычесть величину диапазона из полученного числа, чтобы вернуть его в диапазон.Пример. Пусть дана система оснований
= 2, = 3, = 5, =7, =11, объем диапазона =2·3·5·7·11=2310. перевести число = (1, 2, 1, 4, 7) в позиционную систему.Вычислим ортогональные базисы.
Для этого найдем величины
: =1155, =770, =462, =330, =210.Ищем веса базисов:
1155
º 1( 2), º 1( 2).770
º 1( 3), º 2( 3).