
4 Загальні відомості щодо теорії лишкових класів
Код умовних лишків (ЛУ – код) відноситься до узагальнених кодів, тобто до кодів, коли певна група двійкових символів розглядаються як один символ, чи коли один символ є багаторозрядним.
Теоретичною основою ЛУ – коду є теорія лишкових класів. З теорії лишкових класів відомо, що будь-яке ціле число можна представити у вигляді набору лишків від ділення цього числа на набір взаємно простих чисел, які мають назву основ системи числення, – pi, де і = 1, 2 ., т, т – кількість таких основ. Вибір величини т здійснюється з умови, які викладені нижче. Тоді будь-яке число А представляється як:
А = α1, α2 ., αт, (1)
де:
αi =А – [А/pi]∙pi,
а знак [А/pi] означає операцію обрахування цілої частини від дробового числа А/pi.
При цьому між числами А і їх представленням (1) існує взаємна однозначна відповідність, якщо і числа і результати операцій над ними є цілими числами і не перевищують величини так званого робочого діапазоні:
.
У цьому виразі величина Р [0, P) – діапазон представлення або робочий діапазон чисел. Звернемо увагу на те, що у виразі (1) αі є групою двійкових розрядів, кількість яких не перевищує розрядності відповідної основи pi.
Приклад.
Нехай потрібно представити число А
= 7 в системі лишкових класів із основами
p1
=2, p2
=3, p3
=5. В цьому
разі
.
Тоді
α1
= 7 – [7/2]∙2
= 1, α2
= 7 – [7/3]∙3
= 1, αт
= 7 – [7/5]∙5
= 2 і тоді це число запишеться як:
А = 7 = 1, 1, 2,
якщо ж В = 3, то це число запишеться як:
В = 3 = 1, 0, 3.
В системі лишкових
класів усі арифметичні операції над
числами виконуються шляхом паралельних
операцій над кожним із лишків по
відповідним модулям. Будемо ці операції,
наприклад, операції над числами А
та В
по модулю d
позначати як:
.
За рахунок розпаралелювання операцій
загальна швидкість їх виконання значно
перевищує швидкість операцій над числами
в позиційних системах числення.
Операції додавання та віднімання виконуються за правилами:
,
Операції множення виконуються за правилами:
Операції ділення
може бути виконаною при умовах, якщо,
по-перше, в лишках, якими представлений
знаменник відсутні такі, що дорівнюють
нулю (на нуль ділити неможливо), а
по-друге, величина А
ділиться на В
націло. В цих випадках ділення здійснює
виконуються за правилами:
,
де d = 0, 1, 2, …, поки не буде одержано ціле значення С.
Приклад. Здійснити арифметичні операції над числами А = 7 = 1, 1, 2 та В = 3 = 1, 0, 3. Тоді
А + В
=7
+ 3
= 10
=
1
+ 1
2,
1
+ 0
3,
2
+ 3
5
= 0,
1, 0,
А – В =7 – 3 = 4 = 1 – 1 2, 1 – 0 3, 2 – 3 5 = 0, 1, 4,
А · В =7 · 3 = 21 = 1 · 1 2, 1 · 0 3, 2 · 3 5 = 1, 0, 1.
Спроба ж розподілити А на В буде невдалою, тому що, по-перше, результат ділення не є цілим числом, а, по-друге, по основі 3 буде ділення на нуль, що є не припустимим. Це є певним недоліком системи числення, який долається за рахунок застосування спеціальних програмних методів ділення чисел. З урахуванням того, що сама по собі операція ділення в позиційних системах числення є дуже довгою (потребує багато мікрооперацій), а швидкість операцій в системі лишкових класів є суттєво вищою, загальний час виконання ділення може бути навіть меншим ніж при використанні позиційних систем числення.