BCD KOD

BINARNI KODOVI
BINARNO KODIRANI DECIMALNI BROJEVI (BCD KOD)
BCD kod za prikaz jedne znamenke koristi 4 bita, pri čemu se znamenka zapisuje kao
binarni ekvivalent njene vrijednosti.
Primjer 2.1:
Dekadski broj 3720 prikažite u BCD kodu.
Rješenje:
Pretvorimo znamenke iz dekadskih u binarne vrijednosti u grupama po 4 bita:
3
0011
7
0111
2
0010
0
0000
Slijedi da je broj 3720 kodiran u BCD kod:
0011011100100000.
Zadatak 2.1:
Dekadski broj 952713 prikažite u BCD kodu.
Rješenje:
1001 0101 0010 0111 0001 0011
SIGURNOSNI KODOVI ZA KONTROLU PARITETA
U prijenosu signala se u praksi uvijek događaju pogreške, najčešće uzrokovane
smetnjama na prijenosnim sustavima. Da bi se signali zaštitili, a time i informacija koju
prenosimo, koristimo se kodovima koji omogućuju detekciju greške.
Redudanciju (zalihost) koda definiramo izrazom:
R=
broj zaštitnih bitova / ukupan broj bitova
Primjer 2.2:
U računalu koristimo memoriju s neparnim paritetom. Podatak se smješta u 8 bita, a 9-ti
bit je bit za otkrivanje i korekciju greške. Prilikom zapisa podatka u registar, bit pariteta
se koristi tako da se postavlja na 1 ako je broj jedinica u bloku podatka neparan
(neparan paritet). Kolika je redudancija ovakvog kodiranja ?
Ako broj zaštitnih bitova označimo sa r, a ukupan broj bitova sa n :
R= r/n=1/9=0,1111
1
Zadatak 2.2:
Objasni svojstva ovakvog kodiranja.
Rješenje:
Ovakav kod otkriva svaku jednostruku i neparan broj grešaka. Greške se ne mogu
popraviti.
Zadatak 2.3:
U računalu koristimo memoriju s parnim paritetom. Kontrolni bit se postavlja na 1 ako je
broj jedinica u registru podatka paran.
U registru je smješten binarni podatak: 1101 0101.
Na koju vrijednost se postavlja bit pariteta ?
Rješenje:
U registru podatka imamo 5 jedinica (neparan broj). Bit pariteta se postavlja na 0.
HAMMINGOVI KODOVI
Hamming je prvi izveo linearne kodove (n,k) koji korigiranju pojedinačnu pogrešku, pri
čemu je:
n = ukupan broj bitova u kodnoj riječi
k = broj bitova informacije
m = n-k = broj kontrolnih bitova
Vrijedi pravilo da mora postojati odnos:
2m ≥ k + m +1
Kontrolni bitovi se umeću na pozicijama koje su potencije broja 2.
Primjer 2.3:
Koliko je bitova potrebno za prijenos 12 bita informacije Hammingovim kodom.
Rješenje:
Ako sa C označimo kontrolne, a sa P podatkovne bitove:
1
2
0
2
C
3
1
2
C
4
5
6
7
2
P
2
C
8
9
10
11
12
13
14
15
3
P
P
P
2
C
16
17
4
P
P
P
P
P
P
P
2
C
P
potrebno je poslati ukupno 17 bitova da bismo prenijeli 12 bitova informacije, upotrebom
Hammingova koda.
2
Zadatak 2.4:
Formirajte Hammingovu matricu za slanje 4 bita informacije
C1
C2
P1
C3
P2
P3
P4
1
2
3
4
5
6
7
20
21
x
x
x
0
22
x
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
Zadatak 2.5:
Upotrebom Hammingove matrice iz prethodnog zadatka zaštite 4 bita informacije: 0110
Primjenite neparni paritet.
Rješenje:
Kontrolne bitove određujemo uz pomoć matrice, primjenjujući slijedeće pravilo:
1. Pravilo za računanje kontrolnog bita je sadržano u onom retku matrice
gdje je za kontrolni bit kojeg računamo postavljena vrijednost 1.
Prvi kontrolni bit ima jedinicu u 3. retku, ispitujemo paritet na P1, P2, P4
Drugi kontrolni bit ima jedinicu u 2. retku, ispitujemo paritet na P1, P3, P4
Treći kontrolni bit ima jedinicu u 1. retku, ispitujemo paritet na P2, P3, P4
2. Računamo paritet na zadanim vrijednostima, iz bit-ova informacije
C1 = ?
P1=0, P2=1, P4=0 -> UKUPAN BROJ JEDINICA NEPARAN
C1 = 1, ZBOG TRAŽENOG NEPARNOG PARITETA
C2 = ?
P1=0, P3=1, P4 =0
C2 = 1
C3 = ?
P2=1, P3=1, P4=0
C3 = 0
Spojimo kontrolne bitove s bitovima informacije i dobivamo za slanje:
1100110
3
Zadatak 2.7:
Hammingovim kodom zaštite podatak: 1000 1111 01. Primjenite neparni paritet.
Izračunajte redudanciju takvog kodiranja.
1
c
0
0
0
1
x
c1
2
c
0
0
1
0
3
p
0
0
1
1
x
c2
1
c1
c2
c3
c4
4
c
0
1
0
0
x
c3
5
p
0
1
0
1
6
p
0
1
1
0
7
p
0
1
1
1
0
0
0
8
c
1
0
0
0
x
c4
9
p
1
0
0
1
10
p
1
0
1
0
11
p
1
0
1
1
12
p
1
1
0
0
13
p
1
1
0
1
14
p
1
1
1
0
1
1
1
1
0
1
1
0
0
1
R=r/n=4/14=0,286
EXCESS-3 KOD
Kao i BCD kod za kodiranje jedne dekadske znamenke koristi 4 bita, pri čemu se
znamenka zapisuje kao binarni ekvivalent njene vrijednosti uvećane za 3.
Primjer 2.4:
Dekadski broj 3720 prikažite u Excess-3 kodu.
Rješenje:
3
7
2
0
0110
1010
0101
0011
Slijedi da se 3720 zapisuje kao: 0110 1010 0101 0011
BIKVINARNI KOD
Za kodiranje dekadskih znamenki se primjenuje slijedeća tablica :
broj
0
1
2
3
4
5
6
7
8
9
bikvinarni kod
5043210
0100001
0100010
0100100
0101000
0110000
1000001
1000010
1000100
1001000
1010000
4
Koristeći ovaj kod postižemo uvijek isti broj jedinica za svako kodiranje.
Primjer 2.5:
Dekadski broj 255 prikažite u bikvinarnom kodu.
Rješenje:
2
5
5
0100100
1000001
1000001
ASCII KOD
Služi za kodiranje znakova:
•
•
•
•
26 velikih slova engleske abecede
26 malih slova engleske abecede
10 znamenaka
operatori, interpunkcije, upravljački znakovi
Za pohranu 1 znaka dovoljan je 1 byte.
Najstariji standard je ASCII (ISO-7 standard): 7 bita za informaciju + 1 bit za paritet Ö
27 = 128 različitih znakova.
Satoji se od specijalnih znakova (znakovi za upravljanje ulazno-izlaznim jedinicama
računala)
-> (0-31 dekadski)
i od znakova koji se mogu tiskati
-> (32-127 dekadski)
Najvažnije ASCII vrijednosti:
0
– znak NULL (‘\0’)
32
– praznina (‘ ‘)
48 – 57 – znamenke ‘0’-‘9’
65 – 90 – velika slova ‘A’ do ‘Z’
97 –122 – mala slova ‘a’ do ‘z’ (97-65=32 – razlika između malog i velikog slova!)
Ispis ASCII tablice:
Dekadski Oktalno Hex
------------000
000
000
001
001
001
002
002
002
003
003
003
004
004
004
005
005
005
006
006
006
007
007
007
008
010
008
009
011
009
010
012
00A
011
013
00B
012
014
00C
013
015
00D
014
016
00E
015
017
00F
016
020
010
Binarno
-----00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
Vrijednost
----NUL
(Null char.)
SOH
(Start of Header)
STX
(Start of Text)
ETX
(End of Text)
EOT
(End of Transmission)
ENQ
(Enquiry)
ACK
(Acknowledgment)
BEL
(Bell)
BS
(Backspace)
HT
(Horizontal Tab)
LF
(Line Feed)
VT
(Vertical Tab)
FF
(Form Feed)
CR
(Carriage Return)
SO
(Shift Out)
SI
(Shift In)
DLE
(Data Link Escape)
5
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
100
101
102
103
104
105
106
107
110
111
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
011
012
013
014
015
016
017
018
019
01A
01B
01C
01D
01E
01F
020
021
022
023
024
025
026
027
028
029
02A
02B
02C
02D
02E
02F
030
031
032
033
034
035
036
037
038
039
03A
03B
03C
03D
03E
03F
040
041
042
043
044
045
046
047
048
049
04A
04B
04C
04D
04E
04F
050
051
052
053
054
055
056
057
058
059
05A
05B
05C
05D
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
00011110
00011111
00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111
00110000
00110001
00110010
00110011
00110100
00110101
00110110
00110111
00111000
00111001
00111010
00111011
00111100
00111101
00111110
00111111
01000000
01000001
01000010
01000011
01000100
01000101
01000110
01000111
01001000
01001001
01001010
01001011
01001100
01001101
01001110
01001111
01010000
01010001
01010010
01010011
01010100
01010101
01010110
01010111
01011000
01011001
01011010
01011011
01011100
01011101
DC1 (XON) (Device Control 1)
DC2
(Device Control 2)
DC3 (XOFF)(Device Control 3)
DC4
(Device Control 4)
NAK
SYN
(Synchronous Idle)
ETB
(End of Trans. Block)
CAN
(Cancel)
EM
(End of Medium)
SUB
(Substitute)
ESC
(Escape)
FS
(File Separator)
GS
(Group Separator)
RS
(Request to Send)
US
(Unit Separator)
SP
(Space)
!
(exclamation mark)
"
(double quote)
#
(number sign)
$
(dollar sign)
%
(percent)
&
(ampersand)
'
(single quote)
(
(left parenthesis)
)
(right parenthesis)
*
(asterisk)
+
(plus)
,
(comma)
(minus or dash)
.
(dot)
/
(forward slash)
0
1
2
3
4
5
6
7
8
9
:
(colon)
;
(semi-colon)
<
(less than)
=
(equal sign)
>
(greater than)
?
(question mark)
@
(AT symbol)
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
(left/opening bracket)
\
(back slash)
]
(right/closing bracket)
6
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
177
05E
05F
060
061
062
063
064
065
066
067
068
069
06A
06B
06C
06D
06E
06F
070
071
072
073
074
075
076
077
078
079
07A
07B
07C
07D
07E
07F
01011110
01011111
01100000
01100001
01100010
01100011
01100100
01100101
01100110
01100111
01101000
01101001
01101010
01101011
01101100
01101101
01101110
01101111
01110000
01110001
01110010
01110011
01110100
01110101
01110110
01110111
01111000
01111001
01111010
01111011
01111100
01111101
01111110
01111111
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
(caret/cirumflex)
(underscore)
(left/opening brace)
(vertical bar)
(right/closing brace)
(tilde)
(delete)
Primjer: 2.6.
U računalu je binarno zapisana informacija: „VSTSI“.
Prikažite zapis u računalu.
Rješenje:
V
S
T
S
I
->
->
->
->
->
ascii:
ascii:
ascii:
ascii:
ascii:
086
083
084
083
073
-> binarno u računalu: 01010110
->
01010011
->
01010100
->
01010011
->
01001001
Zadatak: 2.8.
Prikažite zapis u računalu iz prethodnog zadatka pod pretpostavkom da se 1. bit s lijeve
strane koristi za kontrolu pariteta. Primjenite neparni paritet.
01010110
01010011
01010100
01010011
01001001
-
>
>
>
>
>
broj
broj
broj
broj
broj
jedinica:
jedinica:
jedinica:
jedinica:
jedinica:
4
4
3
4
3
-
>
>
>
>
>
bit
bit
bit
bit
bit
pariteta=0
pariteta=0
pariteta=1
pariteta=0
pariteta=1
->zapis
->zapis
->zapis
->zapis
->zapis
s
s
s
s
s
paritetom:
paritetom:
paritetom:
paritetom:
paritetom:
01010110
01010011
11010100
01010011
11001001
7