You are on page 1of 20

2 Дигитална логика

Проф. Цвета Мартиновска Банде

1.6 Бинарни кодови

Интеракцијата меѓу човекот и компјутерот најчесто се одвива преку


тастатура. На секоја притисната дирка одговара алфанумерички
карактер или управувачки знак (табулатор, CR, LF и др.). ASCII кодот
е еден начин на кодирање на дирките од тастатурата.

Дигиталните системи содржат електронски прекинувачи кои може да


се наоѓаат само во две состојби, па за нивно претставување погоден е
бинарниот систем. За изведување на интерните операции
компјутерите користат бинарни броеви но комуникацијата со
корисникот се одвива во декаден броен систем. За поедноставна
комуникација секој декаден број се претставува со низа од бинарни
цифри. Овој начин на претставување на декадните броеви се нарекува
бинарно кодирање.

Покрај неведените постојат и други причини за кодирање, како што се


шифрирањето на податоците, откривање и поправање на грешки кои
се јавуваат при пренос на информации.

Бинарните кодови вообичаено имаат иста должина на кодните


зборови. Таквите бинарни кодови се нарекуваат рамномерни бинарни
кодови. Коден збор е група на симболи со која се претставува некоја
информација.

Дел од бинарните кодови се тежински, односно секој бит има


одредена тежина, а дел се нетежински. Еден пример за тежински код е
бинарниот броен систем. Кај нетежинските бинарни кодови битовите
немаат одредена тежина туку важен е распоредот на битовите во
кодниот збор. Кај овие кодови врската меѓу декадниот број и кодниот
збор се дава преку математички равенки или специјални кодни
таблици.

• BCD кодови на броевите


Кај дигиталните инструменти има потреба за внесување и
прикажување на податоците во декаден облик кој корисниците
претпочитуваат да го користат. За таа цел се развиени BCD кодовите.
Бројни системи и кодови 3

BCD (Binary Coded Decimal) е кратенка за бинарно кодирани декадни


броеви.

За да може да се претстават 10 декадни цифри потребни се 4 бита. 3


бита не се доволни бидејќи 23=8<10. Со 4 бита може да се претстават
24=16 декадни цифри што значи дека 6 кода ќе останат
неискористени, па ова кодирање е редундантно.

Во општ случај за бинарно кодирање на N броја (0,…,N-1) потребни


се n бита каде n= log2N, односно 2n=N. За кодирање може да се
користи било кое произволно доделување на комбинации од битови
на цифрите така да има 16!/6! или приближно 2,9*1010 можни кодови.
Само неколку од овие кодови се користат бидејќи аритметичките
операции во скоро сите кодови се тешки.

BCD кодот 8421 се нарекува природен BCD (NBCD) код. 8421 се


ознаки за тежините на четирите бита со кои се кодира секоја цифра од
декадниот број. Кодот е прикажан во табела 1.8. За цифрите од 0 до 9
бинарното претставување на цифрата е исто со (8,4,2,1) кодот на
цифрата.

Табела 1.8: NBCD код

децимална цифра (8,4,2,1) NBCD код


0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Кај BCD кодирањето секоја декадна цифра се кодира бинарно, за


разлика од бинарното претставување на декадните броеви. На пример,
декадниот број 12 се преставува бинарно како 1100, а BCD кодот на
бројот 12 е
0001 0010
1 2
4 Дигитална логика

Собирањето на NBCD кодови се одвива според правилата:


• на секој нибл (4 бита, тетрада) се додава 0110, односно
бинарната вредност на декадниот број 6
• добиениот бинарен број се собира со вториот собирок
следејќи ги правилата за бинарно собирање
• се одзема бинарната вредност на 6 од NBCD цифрите
(тетрадите) кај кои не се јавил пренос.

Со други зборови, собирањето на NBCD броевите е исто како кај


бинарните броеви се додека сумата е 9 или помала. Кога сумата е
поголема од 9 резултатот се корегира со додавање на бројот 6.

На пример, собирањето на 3610= 0011 0110NBCD и 9210=1001 0010NBCD


се изведува на следниот начин

0011 0110 36
+0110 +0110 +6
_________________
1001 1100
+1001 0010 +92
__________________
1 0010 1110
-0110 -6
__________________
0001 0010 1000 128

При собирање на броевите 4610=0100 0110NBCD и 9410=1001 0100NBCD


се јавува пренос кај двете NBCD цифри па не е потребно да се одземе
бинарната вредност на 6 од ниедна цифра

0100 0110 46
+0110 +0110 +6
_________________
1010 1100
+1001 0100 +94
__________________
1 0011 1 0000

+1
__________________
0001 0100 0000 140
Бројни системи и кодови 5

При одземање на броевите 9210=1001 0010NBCD и 3610=0011 0110NBCD


кај тетрадата во која се позајмува се одзема 6

0112
0 12
1001 0010 92
- 0011 0110 -36
_________________
0101 1100
-0110
__________________
0101 0110 56

• Седумсегментен код

Некои дигитални уреди ги прикажуваат податоците преку индикатори


со LED диоди. Индикаторот се состои од седум сегменти. Секоја од
10-те декадни цифри се претставува со комбинација од осветлени и
неосветлени сегменти.

Седумсегментните индикатори се произведуваат со заедничка анода


или со заедничка катода. Во табелата 1.9 се претставени
седумсегментните кодови за индикатори изведени со заедничка анода
или со заедничка катода.
Табела 1.9: Седумсегментен код

дисплеј со заедничка дисплеј со заедничка


децимална цифра катода анода
abcdefg abcdefg
0 1111110 0000001
1 0110000 1001111
2 1101101 0010010
3 1111001 0000110
4 0110011 1001100
5 1011011 0100100
6 1011111 0100000
7 1110000 0001111
8 1111111 0000000
9 1111011 0000100
6 Дигитална логика

На сликата 1.1 е претставен индикатор за седумсегментен код.

f b
g

e c
d

слика 1.1: Индикатор за седумсегментен код

• Тежински и нетежински кодови

Кај тежинските кодови секоја позиција во кодот има определена


тежина. Нека тежините на 4-те позиции за 4-битен тежински код се
означат со t3, t2, t1 и t0. Децималната вредност на кодниот збор b3b2b1b0
се добива од збирот b3t3+b2t2+b1t1+b0t0.

Ако сите тежини на еден тежински код се позитивни тогаш тој се


нарекува позитивен тежински код. На пример, кодовите (5,3,2,1),
(7,4,2,1) и (4,2,2,1) се позитивни тежински кодови. Кодовите се
претставени во табела 1.10.

Табела 1.10: (5,3,2,1) код

децимална (5,3,2,1) код (7,4,2,1) код (4,2,2,1) код


цифра
0 0000 0000 0000
1 0001 0001 0001
2 0010 0010 0010
3 0 1 0 0 или 0011 0011 0011
4 0101 0100 1000
5 1 0 0 0 или 0110 0101 0111
6 1 0 0 1 или 0111 0110 1100
7 1010 1000 1101
8 1 1 0 0 или 1011 1001 1110
9 1101 1010 1111
Бројни системи и кодови 7

Постојат и кодови каде некои од тежините се негативни. Тие се


наречени негативни тежински кодови. На пример, кодот (8,4,-2,-1) кој
е претставен во табела 1.11 е негативен тежински код.

Табела 1.11: (8,4,-2,-1) код

децимална цифра (8,4,-2,-1) код


0 00 0 0
1 01 1 1
2 01 1 0
3 01 0 1
4 01 0 0
5 10 1 1
6 10 1 0
7 10 0 1
8 10 0 0
9 11 1 1

Кај нетежинските кодови позицијата на цифрите не е поврзана со


одредена тежина. Примери за нетежински кодови се вишок 3 (exceed
3) и Грејовиот код (Gray code).

За да се добие вишок 3 кодот (табела 1.12) на декадната цифра се


додава 3, а потоа бројот се претвара во бинарен број. Аритметичките
операции собирање и одземање кога се користи кодот вишок 3 се
едноставни.
Табела 1.12: Вишок 3 код

децимална цифра вишок 3 код


0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100
8 Дигитална логика

Ако збирот на цифрите во декадна репрезентација е поголем од 9, во


вишок 3 кодот се јавува пренос кон следна цифра со поголема тежина.
Резултатот потоа се корегира со додавање 0011 (3 декадно) на двете
добиени цифри. На пример, при собирање на броевите 6 и 5
претставени во вишок 3 се јавува пренос кон цифра со поголема
тежина и се изведува корекција на резултатот

декадно собирање собирање во вишок 3 код


6 1001
+5 +1000
___ __________
11 1 0001
+0011 +0011 додавање 3
______________
пренос 0100 0100

Ако во вишок 3 се собираат цифри чиј збир во декадна репрезентација


е помал или еднаков на 9 резултатот треба да се корегира со одземање
на 0011. Овој случај е претставен со следниот пример

декадно собирање собирање во вишок 3 код


4 0111
+3 +0110
___ __________
7 1101
-0011 одземање 3
__________
1010
При одземање во кодот вишок 3 разликата се корегира со додавање
0011, како што е илустрирано со следниот пример

декадно одземање одземање во вишок 3 код


27 0101 1010
-11 -0100 0100
___ __________
16 0001 0110
+0011 +0011 додавање 3
______________
0100 1001
Бројни системи и кодови 9

Самокомплементирачки BCD кодови

Некои кодови имаат особина да кодниот збор на деветичниот


комплемент на некоја цифра (9-N) се добива како единечен
комплемент на неговата кодна репрезентација.

На пример, коден збор на декадниот број 7 во кодот (4,2,2,1) е 1101.


Деветичен комплемент на 7 е 2 (9-7=2) на кој одговара коден збор
0010. Кодот 0010 е единечен комплемент на 1101. Според тоа, кодот
(4,2,2,1) е самокомплементирачки.

Дефиниција 1.1: Нека b3b2b1b0 е коден збор на декадната цифра d i , а


b3 b2 b1 b0 е единечниот комплемент на кодниот збор. Кодот е
самокомплементирачки ако комплементот до 9 на декадната цифра
( 9 − d i ) може да се претстави со кодниот збор b3 b2 b1 b0 .

Пример 1.23: Дали кодот (2,4,2,1) е самокомплементирачки?

Нека го земеме кодот на бројот 3 како пример. Во (2,4,2,1) кодот


бројот 3 се претставува како 0011 (или 1001). Со комплементирање на
секоја бинарна цифра се добива 1100 (0110) што претставува (2,4,2,1)
код на бројот 6, кој всушност е дополнување на 3 до 9. Затоа, кодот
(2,4,2,1) е самокомплементирачки.

Децимална цифра (2,4,2,1) код


3 0011
9-3=6 1100

Пример 1.24: Дали NBCD кодот е самокомплементирачки?

Децимална цифра (8,4,2,1) код


5 0101
9-5=4 0100

Со комплементирање на секоја цифра од кодот 0101 за декадниот број


5 се добива 1010. Комплементот 1010 е различен од NBCD кодот 0100
на бројот 4. Затоа NBCD кодот не е самокомплементирачки.

Пример 1.25: Дали (8,4,-2,-1) кодот е самокомплементирачки?


10 Дигитална логика

Децимална цифра (8,4,-2,-1) код


7 10 0 1
9-7=2 01 1 0

Кодот (8,4,-2,-1) е самокомплементирачки.

Пример 1.26: Дали кодот вишок 3 е самокомплементирачки?

Децимална цифра вишок 3 код


1 0100
9-1=8 1011

Кодот вишок 3 е самокомплементирачки.

Теорема 1: Ако BCD кодот е самокомплементирачки тогаш збирот на


неговите тежини е 9. Важи и спротивното тврдење: ако збирот на
тежините на кодот е 9 тогаш кодот е самокомплементирачки.

Доказ: Нека кодот на бројот е b3b2b1b0 а тежините на кодот се t 3 t 2 t1t 0 .


Тогаш декадната вредност на бројот е d = b3 t 3 + b2 t 2 + b1t1 + b0 t 0 .
Нека d е комплементот до 9 на декадниот број. За кодот да биде
самокомплементирачки кодниот збор за d треба да е еднаков на
единечниот комплемент на кодот b3b2b1b0 .

d = (1 − b3 )t 3 + (1 − b2 )t 2 + (1 − b1 )t1 + (1 − b0 )t 0
= t 3 + t 2 + t1 + t 0 − (b3 t 3 + b2 t 2 + b1t1 + b0 t 0 )
= t 3 + t 2 + t1 + t 0 − d
Следи дека t 3 + t 2 + t1 + t 0 = 9 .

Пример 1.27: Да се претстави бројот 462 во NBCD код.

Бројот 462 во NBCD код се претставува 0100 0110 0010.

Самокомплементирачки кодови со 4 бита се (4,2,2,1), (4,3,1,1), вишок


3 и (2,4,2,1). Постојат и самокомплементирачки кодови кои имаат и
негативни тежини, како кодот (8,4,-2,-1).
Бројни системи и кодови 11

Циклични кодови

Циклични кодови се оние кај кои последователните кодни симболи се


разликуваат само во една позиција. Тие се нетежински кодови. Во
табела 1.13 е претставен цикличен код.

Табела 1.13: Цикличен код

Децимална цикличен код


цифра
0 0000
1 0001
2 0011
3 0010
4 0110
5 0100
6 1100
7 1110
8 1010
9 1000

Друг цикличен код е Грејовиот код (Gray code). Грејовиот код се


добива од бинарниот код на бројот со користење на следната формула

gi = bi  bi +1 0  i  n − 1
gn = bn (1.7)
b
каде i , 0  i  n се цифрите на бинарниот код, додека i 0  i  n
g ,
се цифрите на Грејовиот код.
Операцијата  , се нарекува исклучиво ИЛИ (EXOR) и се изведува
според табела 1.14. Операцијата  претставува собирање по модул 2.
Логичките операции се разгледуваат во втората глава од оваа книга.

Табела 1.14: Табела на вистинитост за операцијата исклучиво ИЛИ

x y x y
0 0 0
0 1 1
1 0 1
1 1 0
12 Дигитална логика

За добивање на цифрите на Грејовиот код од бинарниот код може да


се користи и следната формула

gi = (bi + bi +1 ) mod 2 0  i  n − 1. (1.8)

Во табела 1.15 е претставен Грејовиот код за цифрите од 0 до 15.

Табела 1.15: Грејов код

Децимална Грејов код бинарен код


цифра
0 0000 0000
1 0001 0001
2 0011 0010
3 0010 0011
4 0110 0100
5 0111 0101
6 0101 0110
7 0100 0111
8 1100 1000
9 1101 1001
10 1111 1010
11 1110 1011
12 1010 1100
13 1011 1101
14 1001 1110
15 1000 1111

Од табела 1.15 се забележува дека Грејовиот код е рефлективен.


Освен MS битот другите битови се симетрични во однос на средната
точка. Во горната половина MS битот е 0 а во долната 1.

Пример 1.28: Да се најде Грејовиот код за бинарниот код 1110.


Бројни системи и кодови 13

b3 b2 b1 b0
1 1 1 0

1 0 0 1

Грејовиот код за (1110)2=(14)10 е 1001.

За добивање на бинарниот код од Грејовиот код се користат


формулите

bn = g n
(1.9)
g i = bi  bi −1 0  i  n − 1

При пресметувањето на бинарните цифри според вториот израз од


формулите 1.9 позната е вредноста на gi и bi а се определува
вредноста на bi-1.

Пример 1.29: Да се најде бинарниот код за Грејовиот код 1011.

g3 g2 g1 g0
1 0 1 1

b3=g3=1
g2=b3  b2 0=1  b2 според операцијата  следи дека b2=1
g1=b2  b1 1=1  b1 следи дека b1=0
g0=b1  b0 1=0  b0 следи дека b0=1

На Грејовиот код 1011 одговара бинарниот код (1101)2=(13)10.


14 Дигитална логика

Kонтрола на точност на пренесените информации

При пренос на информациите од предавателот кон приемникот низ


дигиталните системи може да се јави грешка како резултат на
различни фактори. Од тие причини од посебен интерес се техниките
за контрола на точноста на пренесените информации. Постојат кодови
за откривање и корегирање на грешки. Кодовите за откривање и
корегирање на грешки се формираат со додавање дополнителни,
контролни битови. Функцијата на дополнителните битови зависи од
методот на проверка на точноста на добиената информација.

• Кодови за откривање на грешки

Пред да бидат опишани некои кодови за откривање на грешки се


воведува поимот Булово (Boole) растојание како растојание меѓу
кодните зборови.

01
11

00 10

а)
001 011

101 111

000 010

100
110

б)
слика 1.2: а) Графичко претставување на 2-битни бинарни броеви
б)Графичко претставување на 3-битни бинарни броеви

Поимот растојание меѓу кодните зборови може геометриски да се


интерпретира преку бинарна n-коцка која има 2n темиња, при што
секое теме одговара на n-битна низа. Во коцката две темиња се
поврзани со гранка ако низите кои одговараат на темињата се
Бројни системи и кодови 15

разликуваат само во еден бит. Кодните зборови се претставуваат како


n-битни бинарни броеви.

2-битните бинарни броеви може да се претстават во


дводимензионална рамнина како на слика 1.2а.

Растојанието меѓу две соседни темиња е 1, а растојанието меѓу две


несоседни темиња во 2-коцка е секогаш 2. 3-битните бинарни броеви
може да се претстават во тридимензионален простор како на сликата
1.2б. Растојанието меѓу две соседни темиња е 1. Кај 3-
димензионалната коцка растојанието меѓу несоседни темиња може да
биде 2 (меѓу 001 и 111) или 3 (меѓу 001 и 110).

N-коцката овозможува геометриска интерпретација на концептот


растојание, кое се нарекува Хемингово (Hamming) растојание.
Дефиниција 1.2: Хемингово растојание меѓу две темиња е
најкраткиот пат меѓу темињата. Растојанието е еднакво на бројот на
битови во кои се разликуваат двата бинарни кодни зборови со кои се
означени темињата.

3-битен Грејов код (табела 1.16) користејќи ја визуелната


репрезентација може да се претстави како на сликата 1.3.

001-1 011-2

101-6 111-5

000-0 010-3

100-7
110-4

слика 1.3: Визуелна претстава на 3-битен Грејов код

Грејовиот код е цикличен, односно за код со 2n кодни зборови кодот


за најголемиот број (2n-1) е на растојание 1 од кодот за најмалиот број
(0). Кај цикличните кодови во n-коцката се формира затворен пат.
Затворениот пат формиран од Грејовите кодни зборови не се сече
самиот себе и поминува низ сите 2n точки од n-коцката. На сликата
1.3 затворениот пат е претставен со непрекинати линии.
16 Дигитална логика

Табела 1.16: 3-битен Грејов код

децимални цифри Грејов код


0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100

Секој код може да се разгледува како множество од низи од n бита


наречени кодни зборови. Кај кодовите за откривање на грешки важна
особина претставува минималното растојание меѓу кодните зборови.

Дефиниција 1.3: Минимално растојание на еден код е најмалиот број


на битови кои треба да се сменат во кодот на некој збор за да се добие
кодот на било кој друг збор.

На пример, минималното растојание кај NBCD кодот, Грејовиот код,


вишок 3 кодот и (2,4,2,1) кодот изнесува 1. Кај NBCD кодот со
парност и кодот 2 од 5, кои се опишани понатаму во текстот,
минималното растојание е 2.

а) бинарен код б)код со парна парност в) код со непарна парност


слика 1.4: Три начини на кодирање

За да се открие грешка во еден бит кодните зборови треба да имаат


растојание ≥2. Нека 3-битниот код се состои од следните кодни
зборови 000, 011, 100 и 110. Бидејќи кодниот збор 100 е на растојание
1 од 110 и 000 кодот не може да ги открие грешките во еден бит. Ако
Бројни системи и кодови 17

од множеството кодни зборови се изостави кодот 100 а се додаде 101


се добива код чии зборови се на растојание 2. Грешка во еден бит не
може да предизвика промена на еден коден збор во друг, па со овој
код може да се открие грешка во еден бит. Кодовите со парна и
непарна парност на сликата 1.4 се кодови со растојание 2.

• Код за проверка на парност

Кодовите за проверка на парност се кодови за откривање на грешки.


За минималното растојание меѓу кодните зборови да биде 2 потрeбно
е да се изедначи бројот на кодни и некодни зборови. Тоа се
постигнува со додавање на бит за парност на информационите битови
па се добива код со кодни зборови од n+1 бит.

Еден начин на контрола на точноста на информациите е додавање на


дополнителен бит со чија вредност се постигнува бројот на единици
во кодот секогаш да биде парен. Тој код се нарекува код со парна
парност. Друг начин е додавање на бит така да бројот на единици во
кодот да биде непарен при што се добива код со непарна парност.

Пример 1.30: Во табела 1.17 е прикажан NBCD код со непарна


парност. MS (Most Significant) битот е бит за непарна парност а
останатите битови се информациони битови.

Табела 1.17: NBCD код со непарна парност

Децимална NBCD код


цифра со непарна парност
0 10000
1 00001
2 00010
3 10011
4 00100
5 10101
6 10110
7 00111
8 01000
9 11001

Со овој код се открива една грешка во пренесената информација. Ако


примениот код содржи парен број на единици, настанала грешка при
пренесувањето на информацијата. Откриената грешка не може да се
18 Дигитална логика

корегира бидејќи не се знае на која позиција се јавува. Со користење


на бит за парност не може да се откријат две грешки.

• Код 2 од 5

Кодот 2 од 5 припаѓа на класа кодови m_излези_од_ n (m_out_of_n)


кои исто како кодовите за проверка на парност може да откријат
грешка во еден бит. Кодовите имаат кодни зборови од n битови а m
битови се поставени на 1.

Кај кодот 2 од 5 кодните зборови се состојат од 5 бита и секој коден


збор содржи 2 единици. Полутежинскиот код (7,4,2,1,0) е код 2 од 5.
Претставен е во табела 1.18.

Табела 1.18: 2 oд 5 код со тежини (7,4,2,1,0)

децимална цифра (7,4,2,1,0) код


0 11000
1 00011
2 00101
3 00110
4 01001
5 01010
6 01100
7 10001
8 10010
9 10100

Бројот на кодни зборови од 5 бита кои содржат по 2 единици може да


се пресмета како број на комбинации од 5 елементи од класа 2
5 5!
( )= = 10
2 2!(5 − 2)!
Кодот се нарекува полутежински бидејќи сите цифри освен нулата се
кодирани тежински, додека на нулата и е доделена последната
комбинација.

Со користење на 2 од 5 кодот може да се открие позицијата на една


грешка. Исто така, може да се открие двојна грешка, но само кога
грешките настанале на исти вредности (две нули или две единици).
Ако двојната грешка вклучува грешка кај една нула и една единица,
таквата грешка не може да се открие со овој код.
Бројни системи и кодови 19

Друг ваков полутежински код е (6,3,2,1,0) кој е претставен во табела


1.19.

Табела 1.19: 2 oд 5 код со тежини (6,3,2,1,0)

децимална цифра (6,3,2,1,0) код


0 01001
1 00011
2 00101
3 00110
4 01010
5 01100
6 10001
7 10010
8 10100
9 11000

• Дво-петински (biquinary) код

Со овој код може да се открие повеќе од една грешка. Тоа е 7 битен


код од два дела. Првиот дел е тежински код 1_излез_од_2, а вториот
дел е тежински код 1_излез_од_5. Дво-петинскиот код е претставен
во табела 1.20.

Табела 1.20: Дво-петински код

децимална цифра (5,0) (4,3,2,1,0)


0 01 00001
1 01 00010
2 01 00100
3 01 01000
4 01 10000
5 10 00001
6 10 00010
7 10 00100
8 10 01000
9 10 10000
20 Дигитална логика

• Кодови со остаток (residue codes)

Кодовите со остаток користат модуло аритметика, односно остаток


при делење со број наречен модул. При делењето се добива количник
и остаток или резидиум R, а операцијата се претставува со формулата
R(N)=N mod p.

Во табелата 1.21 се претставени остатоците при делење на броевите


од 0 до 9 со модулите 2, 3, 5 и 7.

Табела 1.21: Остатоци при модули 2,3,5 и 7

број N 2 3 5 7
0 0 0 0 0
1 1 1 1 1
2 0 2 2 2
3 1 0 3 3
4 0 1 4 4
5 1 2 0 5
6 0 0 1 6
7 1 1 2 0
8 0 2 3 1
9 1 0 4 2

Операцијата на собирање на броеви се врши со собирање на


остатоците во соодветниот броен систем (односно основата на
бројниот систем е модулот p).

модул 2 3 5 7
15 1 0 0 1
5 1 2 0 5
______________________
15+5=20 0 2 0 6

модул 2 3 5 7
8 0 2 3 1
6 0 0 1 6
______________________
8+6=14 0 2 4 0
Бројни системи и кодови 21

Множењето на броевите со остаток се изведува со множење по модул


p на остатоците.

модул 2 3 5 7
2 0 2 2 2
8 0 2 3 1
______________________
2*8=16 0 1 1 2

Бидејќи множењето на броевите со остаток е брза операција, оваа


техника се користи за реализација на брзи хардверски множачи кај
дигитални филтри. Исто така, аритметиката по модул над броеви со
остаток може да се користи за проверка на коректноста на резултатот
на аритметичките операции.

N1 321 321 mod 9 = 6


N2 248 248 mod 9 = 5
----- ------------------
N1+N2 569 569 mod 9 = 2 (6+5=11 mod 9=2)

Ако се користи модул p=r-1 каде r е основата на бројниот систем


пресметувањето може да се поедностави.

R(N1)=(3+2+1) mod 9 = (6) mod 9 = 6


R(N2)=(2+4+8) mod 9 = (14) mod 9 = 5

Техниките кои користат проверка на остаток се вградуваат во


хардверот за откривање на грешки при аритметичките операции.

Кодовите со остаток може да се користат за проверка на податоците


на два начина. Првиот начин остатокот за одреден модул го
приклучува кон бројот.

На пример, ако бројот кој треба да се пренесе е 46, односно N=


101110 се пресметува остаток R(N)=N mod 3=01. Кодниот збор се
проширува со остатокот и се добива 101110 01.

При вториот начин се множи бројот со одредениот модул (46*3=138)


при што остатокот за резултатот е 0. На пример, ако N=101110 и
модулот m=3 се добива коден збор 10001010. Овој начин се нарекува
самопроверка (self-checking).

You might also like