3.1 SAYISAL KODLAR VE KODLAMA ÇEŞİTLERİ

3.1.1 Tanım
Kodlama, bir bilgi parçasını başka bir form veya gösterime dönüştürme kuralı olarak tanımlanabilir. Diğer bir deyişle, görülebilen, okunabilen yazı, sayı ve işaretlerin değiştirilmesi işlemine "kodlama" denir. Bu kavram, sonlu elemana sahip bir kümenin her bir elemanına bir kod verilmesi olarak ta düşünülebilir.

Kodlama işlemi yalnızca onluk sistemdeki sayıları (0, 1, 2,...,9) içerebileceği gibi alfabetik ve alfa sayısal bilgilerin de kodlanmasını içerebilir. Farklı bilgileri kodlama ihtiyacı ve değişik alanlarda kodlama gereksinimi çeşitli kodlama yöntemlerini doğurmuştur.

Kodlama işlemi aşağıdaki avantajları sağlar;

1) Aritmetik işlemlerde kolaylık sağlar.
2) Hataların bulunmasını kolaylaştırır.
3) Hataların düzeltilmesi işlemlerini basitleştirir.
4) Bellek işlemlerinde verimliliği arttırır.
5) Bilgilerin işlenmesi işleminin insanlar tarafından kolaylıkla anlaşılmasını sağlar.

Yalnızca sayısal karakterlerin kullanıldığı sayısal kodlama sistemlerinin çok geniş uygulama alanı olması nedeni ile, çok farklı sayısal kodlama yöntemleri kullanılmaktadır. Sayısal kodlama yöntemlerine örnek olarak;
A) Sayısal Kodlar

1) BCD Kodu (8421 Kodu)
        a) BCD Kodu (84-2-1)
        b) BCD Kodu (753-6)
2) Octal Kodu
3) Hexadecimal Kodu
4) Gray Kodu
       a) İkili sayıların Gray koduna çevrilmesi
       b) Gray Kodlu bir sayının ikili sayılara çevrilmesi
5) 3 Fazlalık (3 Excess) Kodu
6) Parity (Eşitlik) Kodu
       a) Tek parity bit kodu
       b) Çift parity bit kodu
7) Biquinary Kodu
8) Aiken Kodu
9) 5' de 2 Kodu
10) Bar (çubuk) Kodu 
       a)
İki seviyeli bar kodlama
       b) Çok seviyeli bar kodlama

B) Alfa Sayısal Kodlar (Alfanümerik Kodlar)
1) ASCII Kodu
2) EBCDIC Kodu verilebilir.

3.2 SAYISAL KODLAR

3.2.1 BCD Kodu (8421)
BCD (Binary Coded Decimal) kodu, binary sayıların decimal sayılara çevrilmesinde kullanılan en basit kod sistemidir. Bu kod sisteminde verilen decimal her sayının binary karşılığı bulunur. Bulunan 4 bit’lik sayılar yan yana yazılarak verilen decimal sayının BCD kodunda binary sayılarla ifade edilen karşılığı oluşturulmuş olur. BCD kodu aynı zamanda 8421 kodu olarak da bilinir. En çok kullanıldığı yerler tuş takımları ve dijital göstergelerdir.

Tablo 3.1 BCD Kodları

Onlu BCD Onlu BCD
0
0000
10
0001 0000
1
0001
11
0001 0001
2
0010
12
0001 0010
3
0011
13
0001 0011
4
0100
14
0001 0100
5
0101
15
0001 0101
6
0110
16
0001 0110
7
0111
17
0001 0111
8
1000
18
0001 1000
9
1001
19
0001 1001

Bu sistemde onlu sayının her bir basamağındaki rakamın yerine BCD kodundaki karşılığı yazılır.

                                 Onlu sayı          1           5          0

                                 BCD kodu     0001    0101    0000

Böylece BCD kodunda 0001  0101  0000 sayısı onlu sistemde 150 sayısına karşılık gelmektedir.

Not: Bir onlu sayının BCD karşılığı ile ikili sayı karşılığı aynı değildir.

Örneğin; 255 onlu sayısının BCD karşılığı 0010 0101 0101, ikili sayı karşılığı ise 1111 1111 sayısıdır.

BCD sayıların onlu sayıya çevrilmesi de kolaydır. Önce BCD sayı en sağdaki basamaktan itibaren 4 bitlik gruplara ayrılır. Her grubun onlu sistemdeki karşılığı yazılır ve böylece onlu sayı bulunmuş olur. Örneğin BCD 100100110101 sayısının decimal karşılığını bulalım. Önce binary sayı sağdan itibaren 4'lü gruplara ayrılır.

   1001    0011    0101    elde edilir. Şimdi her grubun decimal karşılığını yazalım:

   1001 = 9           0011 = 3           0101 = 5

Böylece 1001 0011 0101 = 935 bulunur.

Örnek 3.1 (1000 0100 0110 0001) BCD sayısını onlu sayıya çeviriniz.

             1000     0100     0110     0001
                8           4           6          1

Böylece  1000 0100 0110 0001 = 8461 sayısı elde edilir.

Örnek 3.2 (1001 0110 0101 0111) BCD sayısını onlu sayıya çeviriniz.

1001 = 9           0110 = 6           0101 = 5           0111 = 7

Böylece  (1001 0110 0101 0111)BCD = (9657)10 sayısı elde edilir.

Örnek 3.3 (7)10 = (?)8421 BCD

(7)10 = 8*0 + 4*1 + 2*1 + 1*1

(7)10 = (0111) 8421 BCD sayısı elde edilir.

Örnek 3.4 (5)10 = (?)8421 BCD

(5)10 = 8*0 + 4*1 + 2*0 + 1*1

(5)10 = (0101) 8421 BCD sayısı elde edilir.

Örnek 3.5 (9)10 = (?)8421 BCD

(9)10 = 8*1 + 4*0 + 2*0 + 1*1

(9)10 = (1001) 8421 BCD sayısı elde edilir.

Örnek 3.6 (4)10 = (?)8421 BCD

(4)10 = 8*0 + 4*1 + 2*0 + 1*0

(4)10 = (0100) 8421 BCD sayısı elde edilir.

Sayı 2 basamaklı ise;

Örnek 3.7  (13)10 = (?)8421 BCD

 (     1           3  )10
 (  0001    0011)8421 BCD

(13)10 = (00010011)8421 BCD sayısı elde edilir.

Örnek 3.8  (16,35)10 = (?)8421 BCD

 (     1           6    ,    3           5    )10
 (  0001    0110    0011    0101  )8421 BCD

(16,35)10 = (00010110 , 00110101)8421 BCD sayısı elde edilir.

3.2.1.1 BCD Kodu (84-2-1)
Bu kodlama çeşidi, temelinde (8421) koduna benzemekle beraber basamak ağırlıklarının bir bölümü negatiftir.

Tablo 3.2 BCD (84-2-1) Kodu

ONLU

BCD(84-2-1)

ONLU

BCD(84-2-1)

0

0000

10

0111 0000

1

0111

11

0111 0111

2

0110

12

0111 0110

3

0101

13

0111 0101

4

0100

14

0111 0100

5

1011

15

0111 1011

6

1010

16

0111 1010

7

1001

17

0111 1001

8

1000

18

0111 1000

9

1111

19

0111 1111

Örnek 3.9 (5)10 = (?)84-2-1 BCD

                8  4 -2 -1
  (5)10 =   1  0   1  1  

 = 1x8 + 0x4 + 1x(-2) + 1x(-1)
 = 8 + 0 - 2 – 1
 = 5
5 sayısının 84-2-1 kodunda karşılığı 8’ in altına 1, -2 ve -1’ in altına 1 yazılarak kısa yoldan bulunabilir.

Örnek 3.10 (6)10 = (?)84-2-1 BCD

                8  4 -2 -1
  (6)10 =   1  0   1  0  

 = 1x8 + 0x4 + 1x(-2) + 0x(-1)
 = 8 + 0 - 2 – 0
 = 6


Örnek 3.11 (13,45)10 = (?)84-2-1

 Onlu sayı          1          3          4         5  
 BCD kodu     0111    0101     0100    1011  

(13,45)10 = (01110101,01001011)84-2-1  sayısı elde edilir.

3.2.1.2 BCD Kodu (753-6)
BCD gibi 753-6 'kodları onlu 0-9 arasındaki sayıları ifade etmek için kullanılırlar. Bu kod tipine kendini tümleyen kodda denilir ve simetriktir. Dikkat edilirse 5-9 sayılarını tümleyeni 4-0 sayılarıdır.

Örneğin; 1 sayısının 9'a göre tümleyeni 8'dir. Tümleme durumunu BCD 753-6 kodlamasında da görebiliriz.

       1    =     1  0  0  1
                    ˅  ˅  ˅ ˅
       8    =     0  1  1  0

Tablo 3.3 BCD (753-6) Kodu

ONLU

BCD(753-6)

ONLU

BCD(753-6)

0

0000

10

1001 0000

1

1001

11

1001 1001

2

0111

12

1001 0111

3

0010

13

1001 0010

4

1011

14

1001 1011

5

0100

15

1001 0100

6

1101

16

1001 1101

7

1000

17

1001 1000

8

0110

18

1001 0110

9

1111

19

1001 1111

Örnek 3.12 (5)10 = (?)753-6 BCD

                7  5   3 -6
  (5)10 =   0   1   0  0  

 =   0x7 + 1x5 + 0x3 + 0x(-6)
 =   0 + 5 + 0 + 0
 =   5
 (5)10 = (0100)753-6 BCD

Örnek 3.13 (1)10 = (?)753-6 BCD

                7  5   3 -6
  (1)10 =   1   0   0  1  

 =   1x7 + 0x5 + 0x3 + 1x(-6)
 =   7 + 0 + 0 - 6
 =   1
 (1)10 = (1001)753-6 BCD


Örnek 3.14 (13)10 = (?)753-6

                  7   5   3  -6         7   5    3  -6
  (13)10  =   1   0   0   1         0    0   1    0         

 (13)10 = (1001 0010)753-6 

3.2.2 Octal Kodu
Bu kod sisteminde octal sayılar 3 bitlik sayılarla ifade edilir. Bu kodlama sistemi dijital sistemlerde giriş ve çıkış kodlamasında kullanılır.

 Tablo 3.4 Octal Kodu

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

Örneğin 24 bitlik bir binary sayı 8 haneli octal sayı ile ifade edilir. 110000111011101100111010 sayısını ele alalım;

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

24 bitlik binary sayı octal kodlu 60735472 olarak ifade edilir.

Örnek 3.15 (23)8 = (?)2 ve (?)10

Önce octal sayı binary kodunda yazılır.

(2)8 = (010)ve (3)8 = (011)2

(23)8 = (010011)2 olarak yazılır.

(010011)2 = 0x32 + 1x16 + 0x8 + 0x4 + 1x2 + 1x1= (19)10

Sonuç (23)8 = (010011)2 = (19)10 olarak bulunur.

Örnek 3.16 (36)8 = (?)2 ve (?)10

(3)8 = (011)ve (6)8 = (110)2

(36)8 = (011110)2 olarak yazılır.

(011110)2 = 0x32 + 1x16 + 1x8 + 1x4 + 1x2 + 0x1 = (30)10

Sonuç (36)8 = (011110)2 = (30)10 olarak bulunur.

Örnek 3.17 456 octal sayısını binary kodunda gösteriniz.

4 = 100             5 = 101             6 = 110

Böylece (456)8 = (100101110)2  sayısı elde edilir.

Örnek 3.18 726 octal sayısını binary kodunda gösteriniz.

     (   7         2         6  )8
     ( 111     010     110)2

Böylece (726)8 = (111010110)2 sayısı elde edilir.

Örnek 3.19 7426 octal sayısını binary kodunda gösteriniz.

     (   7         4         2         6  )8
     ( 111     100     010     110)2

Böylece (7426)8 = (111100010110)2 sayısı elde edilir.

Örnek 3.20 6531 octal sayısını binary kodunda gösteriniz.

     (   6         5         3         1  )8
     ( 110     101     011     001)2

Böylece (6531)8 = (110101011001)2 sayısı elde edilir.

Örnek 3.21 (127,4)8 =  (?)10

(127,4)8 = 1x82 + 2x81 + 7x80 + 4x8-1 = (87,5)10

Böylece (127,4)8 = (87,5)10 sayısı elde edilir.

3.2.3 Hexadecimal Kod
Bu kod sisteminde hexadecimal sayılar 4 bitlik binary sayılarla ifade edilirler. Bu kod sistemi dijital sistemlerde giriş ve çıkış kodlamasında kullanılır.

Tablo 3.5 Hexadecimal Kodları

Sayı
Hexadecimal Kodu
Sayı
Hexadecimal Kodu
0
0000
8
1000
1
0001
9
1001
2
0010
A
1010
3
0011
B
1011
4
0100
C
1100
5
0101
D
1101
6
0110
E
1110
7
0111
F
1111

Örneğin 16 bitlik binary sayı hexadecimal sayı ile ifade edilir. 16 bitlik 0111000111001011 sayısını ele alalım;

                   0111    0001    1100    1011
                      7          1           C         B

Örnek 3.22 (3A)16 = (?)2 ,  (?)8 , (?)10   ifadelerini bulunuz.

Önce hexadecimal sayı binary kodunda yazılır.

(3)16 = (0011)2    ve    (A)16 = (1010)2

(3A)16 = (00111010)2

olarak bulunur.

(00111010)2 = (58)10

Bulunan binary sayı sağ baştan başlayarak 3 lü gruplara ayrılır,

(000    111  010 )2
(  0        7       2  )8

elde edilir.

Sonuç (3A)16 = (00111010)2 = (72)8 = (58)10  olarak bulunur.

Örnek 3.23 (C2)16 = (?)2 ,  (?)8 ve (?)10  ifadelerini bulunuz.

(C)16  = (1100)2     ve     (2)16 = (0010)2

(C2)16 = (11000010)2

(11000010)2 = (194)10

(011  000  010)2 = (302)8

Sonuç (C2)16 = (11000010)2 = (302)8 = (194)10 olarak bulunur.

Örnek 3.24 (AD3)16 = (?)2

                          A          D          3         
                       1010     1101     0011     

(AD3)16 = (101011010011)2  olarak bulunur.

Örnek 3.25 (2EF)16 = (?)2

                          2           E          F         
                       0010     1110    1111     

(2EF)16 = (001011101111)2  olarak bulunur.

Örnek 3.26 (B65F)16 =  (?)10

(B65F)16 = 11x163 + 6x162 + 5x161 + 15x160  = (46687)10

Böylece (B65F)16 = (46687)10 sayısı elde edilir.

Örnek 3.27 Bir fabrikada bulunan 4 yakıt tankındaki basınç ve sıcaklık değerleri sensörle kontrol edilmektedir. Bir tanktaki sıcaklık ve basınç normal ise sensör çıkışı lojik 0, sıcaklık veya basınç tehlike sınırını aştığında ise sensör çıkışı lojik 1 olmaktadır. (Basınç P, sıcaklık T ile gösterilmektedir. A tankındaki sıcaklık sensörü TA, C tankındaki basınç sensörü PC ile gösterilmektedir).


                            
Şekil 3.1 Yakıt Tankındaki Basınç ve Sıcaklık Değerleri

a) Çıkışta 0010 1000 değeri varsa tanklardaki problem nedir?

B ve C tanklarındaki basınç tehlike sınırını aşmıştır.


b) Çıkışta hexadecimal 55 sayısı okunuyorsa tanklarda hangi problemler vardır?

55 hexadecimal sayısı 0101 0101 ikili sayısına eşittir. Buna göre bütün tanklardaki sıcaklıklar tehlike sınırını aşmıştır.


c) B ve D tanklarında hem sıcaklık hem de basınç değerleri tehlike sınırını aşmış ise çıkışta hangi hexadecimal sayı okunur?

Çıkışta 1100 1100 ikili sayısı belirecektir. Bu da CC hexadecimal sayısına eşittir.

3.2.4 Gray Kodu
Gray kodunda her artış için sadece 1 basamaklık değişikliğe izin verir. Gray kodunda 0000’ dan 1111’ e kadar olan gray kodlu binary sayılarda; bir büyük veya bir küçük sayı koduna geçerken, koddaki sayılardan sadece biri değişir.

Tablo 3.6 Binary ve Gray Kodları

Decimal
Binary
Gray Kodu
Decimal
Binary
Gray Kodu
0
0000
0000
8
1000
1100
1
0001
0001
9
1001
1101
2
0010
0011
10
1010
1111
3
0011
0010
11
1011
1110
4
0100
0110
12
1100
1010
5
0101
0111
13
1101
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000

Yukarıdaki tabloda görüldüğü gibi gray kodlamada birbirini takip eden sayılarda yalnızca 1 bit değişir. Örneğin binary 0001’ den binary 0010’ a geçerken 2 rakam değişmiştir. Gray kodunda ise yalnızca 1 rakam değişir. Bu da hata arama işlemlerinde önemli avantajlar sağlar.

3.2.4.1 İkili Sayıların Gray Koduna Çevrilmesi
İkili sistemdeki bir sayıyı Gray kodlu sayı şekline dönüştürmek için, en yüksek basamak değerine sahip bitin solunda ‘0’ olduğu kabul edilip, her bit solundaki bit ile toplanarak yazılır. Bu işlem en düşük basamak değerlikli bite kadar devam ettirilir. Elde edilen sayı Gray kodlu sayıdır.

1) En soldaki bit (MSB) gray koduna aynen alınır.

2) En soldaki bit ile onun hemen sağındaki biti toplanır ve sonuna gray kodunun soldan ikinci rakamı olarak yazılır (Toplama işlemi sırasında eldeler hesaba katılmaz).

3) En sağdaki bite (LSB) kadar toplanır ve sonucu gray kodun rakamı olarak yazma işlemine devam edilir.

4) Binary sayı ile gray kodunun bit sayısı daima eşit olur.

 

Örnek 3.28 (101110101)2 ikili sistemdeki sayıyı Gray koduna çevirelim.

Başlama biti ---> 0   1   0   1   1   1   0   1   0   1       ikili sayı 
                                            
                               1  1   1   0    0   1   1   1   1      Gray kodlu say

Sonuç (101110101)2 = (111001111)GRAY olarak bulunur.

Örnek 3.29 (010001110)2 ikili sistemdeki sayıyı Gray koduna çevirelim.

Başlama biti ---> 0   0   1   0   0   0   1   1   1   0       ikili sayı    
                                             
                             0    1    1   0   0   1    0   0   1      Gray kodlu sayı

Sonuç (010001110)2 = (011001001)GRAY olarak bulunur.

Örnek 3.30 (10111)2 =  (?)GRAY 

Başlama biti ---> 0  1   0   1   1  1                     ikili sayı    
                            \/  \/  \/  \/  \/ 
                            1    1   1   0   0          Gray kodlu sayı

Sonuç  (10111)=  (11100)GRAY   olarak bulunur.

Örnek 3.31 (56)10 =  (?)GRAY 

                    (56)10 = (111000)2

Başlama biti ---> 0  1  1  1  0  0  0                 ikili sayı    
                          \/ \/  \/ \/ \/ \/ 
                            1  0  0  1  0  0        Gray kodlu sayı

Sonuç  (56)10 =  (100100)GRAY   olarak bulunur.

Örnek 3.32 (297)10 =  (?)GRAY 

                    (297)10 = (100101001)2

Başlama biti ---> 0   1  0   0   1   0   1   0   0   1               ikili sayı    
                          \/  \/  \/  \/  \/  \/  \/  \/  \/
                            1   1   0   1   1   1    1  0   1      Gray kodlu sayı

Sonuç  (297)10 =  (110111101)GRAY   olarak bulunur.

3.2.4.2 Gray Kodlu Bir Sayının İkili Sayılara Çevrilmesi
Gray kodlu bir sayıyı ikili sistemdeki sayı şekline dönüştürmek için, en soldaki bit olduğu gibi aşağıya indirilir ve indirilen sayıyla bir sonraki basamakta bulunan sayı toplanarak yazılır. Bulunan sayı ile bir sonraki basamaktaki sayı toplanır ve bu işlem en düşük değerlikli bite kadar devam ettirilir.

Örnek 3.33 (111001111)GRAY sayısını ikili sayı sistemine çevirelim.

 1     1      1     0      0      1     1     1     1        Gray kodlu sayı 
 

 1      0     1      1     1      0      1     0    1        İkili sayı

Örnek 3.34 (011001010)GRAY sayısını ikili sayı sistemine çevirelim.

 0     1      1      0     0      1     0     1     0        Gray kodlu sayı 
 

 0     1      0      0      0     1      1     0     0        İkili sayı
 

3.2.5  3 Fazlalık (3 Excess) Kodu
Decimal sayıların 8421 BCD kod karşılıklarına 3 (0011) eklenerek elde edilir. Bu kodlama bazı aritmetik işlemlerde kolaylık sağlamasına rağmen tümleyen almadaki güçlükleri, kullanımda azalmaya yol açmıştır. Tablo 3.6’ da decimal ve binary sayılarının 3-Fazlalık kod karşılıkları verilmiştir.

Tablo 3.7 BCD ve 3 Fazlalık Kodları

Decimal

BCD

3 Fazlalık

0

0000

0011

1

0001

0100

2

0010

0101

3

0011

0110

4

0100

0111

5

0101

1000

6

0110

1001

7

0111

1010

8

1000

1011

9

1001

1100

 
 

Örnek 3.35 (5)10 = (?)Xs-3 Decimal sayıyı 3-Fazlalık koduna dönüştürün.

        5   ===>   0101
        3   ===>   0011
  +____         +_____
        8              1000 


Sonuç
(5)10 = (1000)Xs-3 olarak bulunur.

Örnek 3.36 (9)10 = (?)Xs-3 Decimal sayıyı 3-Fazlalık koduna dönüştürün.

      9  ===>  1001
      3  ===>  0011
  +____     +_____
     12            1100 


Sonuç
(9)10 = (1100)Xs-3 olarak bulunur.

Örnek 3.37 574 onlu sayısını Excess 3 kodunda yazınız.

5 + 3 = 8   ===>   1000

7 + 3 = 10  ===>   1010

4 + 3 = 7    ===>   0111

574 onlu sayısı Excess 3 koduna çevrildiğinde sonuç 1000 1010 0111 olur.

Örnek 3.38 815 onlu sayısını Excess 3 kodunda yazınız.

8 + 3 = 11   ===>   1011

1 + 3 = 4     ===>   0100

5 + 3 = 8     ===>   1000

815 onlu sayısı Excess 3 koduna çevrildiğinde sonuç 1011 0100 1000 olur.

Örnek 3.39  861 onlu sayısını Excess 3 kodunda yazınız.

8 + 3 = 11 ===>   1011

6 + 3 = 9   ===>   1001

1 + 3 = 4   ===>   0100

861 onlu sayısı Excess 3 koduna çevrildiğinde sonuç 1011 1001 0100 olur.

Örnek 3.40  (265)10 = (?)Xs-3

2 + 3 = 5   ===>   0101

6 + 3 = 9   ===>   1001

5 + 3 = 8   ===>   1000

(265)10 = (010110011000)Xs-3

Örnek 3.41  (10100110)+3 = (?)10

10100110   ===>   1010    0110

1010   ===>   10

0110   ===>   6

10 - 3 = 7

6 - 3 = 3

(10100110)+3 = (73)10

3.2.6 Parity (Hata Bulma-Eşlik) Kodu
Dijital sistemlerde hatalar büyük oranda devreler arasındaki bilgi transferi sırasında oluşur. Yani gönderilen bilgiler yerine ulaşırken değişmiş olabilir. Bu tip hataların önlenmesi için gönderilen bilgiye parity biti eşlik ettirilir.

Sistemin esası şudur: gönderilen bilgideki 1’lerin tek veya çift sayıda oldukları tespit edilir ve karşı tarafa parity biti yardımıyla gönderilir. Bilgiyi alan taraf yine aynı şekilde bilgideki 1’lerin tek veya çift sayıda olduğunu kontrol eder. Eğer gönderilen bilgideki 1’lerin durumu ile alınan bilgideki durumu birbirini tutuyor ise gönderme sırasında bir hata oluşmamış demektir.

Bazı sistemlerde gönderilen bilgideki 1'lerin çift sayıda olduğu kontrol edilir ve buna çift parity (even parity) adı verilir. Bazı sistemlerde ise 1'lerin tek sayıda olduğu kontrol edilir ve buna da tek parity (odd parity) adı verilir. Burada bilmemiz gereken şudur: Parity kodu sistemiyle ancak 1 bit seviyesinde hata tespiti yapılabilir. Yani bilginin gönderilmesi sırasında birden fazla bit değişikliğe uğramışsa hata tespit edilemez. Ancak bir bit değişmişse hata tespit edilebilir.

Çift parity metodunda gönderilen bilgideki 1'ler çift sayıda ise parity biti olarak 0 üretilir ve karşı tarafa gönderilir.

Tablo 3.8 Parity Biti

Bilgi
Parity Biti
1100
0
0010
1
1110
1
1010
0
1111
0

Yukarıdaki tabloda çift parity sistemi kullanılarak hata dedüksiyonu görülmektedir. İlk satırdaki bilgide 2 adet 1 vardır yani 1’ler çift sayıdadır ve parity biti olarak 0 üretilip gönderilir. İkinci satırda ise bir tane 1 vardır ve bu nedenle parity biti olarak 1 üretilir ve gönderilir. Üçüncü satırdaki 1'lerin sayısı 3 tür ve parity biti 1 olur. Dördüncü satırda iki, beşinci satırda ise dört adet 1 bulunmaktadır. Her iki satırda birlerin miktarı çift sayıyla ifade edildiği için parity bitleri 0 dır.

Not: Bu kod ile ilgili olarak unutulmaması gereken en önemli nokta, bu kodun sadece hatayı tespit edebilmesidir. Bu kod hatayı düzeltmez.

3.2.6.1 Tek parity bit kodu
Tek parity kodu hanesinde 1’lerin toplamı tektir. Yani gönderilecek bilgideki “1” bilgisinin sayısı çift ise (eşlik biti dahil değil) çift eşlik biti “1”bir, tekse çift eşlik biti ”0” sıfır olur.

 

Tablo 3.9 Tek Parity Bit Kodu
İletilecek Sayı
BCD Kodu
Tek Parity Kontrol Biti
Hata Kontrol
1
0001
0
1
9
1011
1
4
6
0110
1
3
5
0101
1
3

İletilen 9 sayısında hata kontrol biti 4 çift sayısı olduğundan dolayı hatalıdır.

3.2.6.2 Çift parity bit kodu
Çift parity kodu hanesinde 1’lerin toplamı çifttir. Yani gönderilecek bilgideki “1” bilgisinin sayısı çift ise (eşlik biti dahil değil) çift eşlik biti “0” sıfır, tekse çift eşlik biti ”1” bir olur.

Tablo 3.10 Çift Parity Bit Kodu
İletilecek Sayı
BCD Kodu
Çift Parity Kontrol Biti
Hata Kontrol
1
0001
1
2
2
0010
1
2
4
0100
1
2
3
0011
0
3
7
0111
1
4

İletilen 3 sayısında hata kontrol biti 3 tek sayısı olduğundan dolayı hatalıdır.

Tek parity sisteminde ise bunlardan farklı olarak 1'lerin miktarı tek sayıyla ifade ediliyorsa parity biti olarak 0, tersi durumundaysa parity biti olarak 1 üretilerek alıcı tarafa gönderilir. Eşitlik kodunda unutulmaması gereken nokta, çift veya tek eşitlik biti yönteminde eklenen bitin bilginin bir parçası olduğudur. Normalde 7 bit olarak ifade edilen bilgiler, eşitlik bitinin eklenmesiyle 8 bitlik bilgiler haline dönüşür. Eşitlik kodlama yönteminin avantajı, bilginin iletilmesi sırasında bir bitin değerinin değişmesi ihtimali olan yerlerde hatanın alıcı tarafından kolayca tespit edilebilmesidir.

Örnek 3.42 İkili bir sayının tek ve çift paritelerinin hesaplanmasını inceleyelim.

3.2.7 BIQUINARY Kodu

Bu kod sisteminde 0, 1, 2, 3, 4 sayıları için “01”; 5, 6, 7, 8, 9 sayıları için de “10” alınır. Basamakların ağırlıklı değerleri için sol taraftaki bitler için 5 0, sağ taraftaki bitler için  4 3 2 1 0  ağırlık değerleri kullanılır.

Tablo 3.11 Biquinary Kodları

Decimal Sayılar

Biquinary Kodu
5 0     4 3 2 1 0

0

0 1     0 0 0 0 1

1

0 1     0 0 0 1 0

2

0 1     0 0 1 0 0

3

0 1     0 1 0 0 0

4

0 1     1 0 0 0 0

5

1 0     0 0 0 0 1

6

1 0     0 0 0 1 0

7

1 0     0 0 1 0 0

8

1 0     0 1 0 0 0

9

1 0     1 0 0 0 0

 

Örnek 3.43 (7)10 = (?)BIQUINARY dönüşümünü inceleyiniz.

                     (7)10 = ( 10 00100) BIQUINARY olarak bulunur.

Örnek 3.44 (9)10 = (?)BIQUINARY dönüşümünü inceleyiniz.

                     (9)10 = ( 10 10000) BIQUINARY olarak bulunur.

Örnek 3.45 (318)10 = (?)BIQUINARY               

                    (3)10     ===>   (0101000)BIQUINARY
                    (1)10     ===>   (0100010)BIQUINARY
                    (8)10     ===>   (1001000)BIQUINARY

                            (318)10 = (010100001000101001000)BIQUINARY  

Örnek 3.46 (6)10 sayısının 5’de 2 kodundaki karşılığını bulalım.

Basamak değerleri 50 43210 olduğundan ve mutlaka 2 tane 1 bulunması gerektiğinden;

(6)10 = (10 00010)5'de 2 eşitliği bulunur.

Örnek 3.47 (2)10 sayısının 5’de 2 kodundaki karşılığını bulalım.

Basamak değerleri 50 43210 olduğundan ve mutlaka 2 tane 1 bulunması gerektiğinden;

(2)10 = (01 00100)5'de 2 eşitliği bulunur.

 

3.2.8 AIKEN (2421) Kodu
Aiken kodu 4 basamaklı olup basamak değerleri 2421 şeklinde ifade edilir. Onlu sistemde 5’ e kadar olan sayılar için sağdaki bitler, 5’ den sonraki sayılar için ise soldaki bitler kullanılır.

Tablo 3.12 Aiken Kodu

ONLU SAYI

AIKEN KODU

0

0000

1

0001

2

0010

3

0011

4

0100

5

1011

6

1100

7

1101

8

1110

9

1111

Örnek 3.48 (2)10 = (?)AIKEN KODU dönüşümünü inceleyiniz.

            2 4 2 1
(2)10 = 0 0 1 0        

=0x2 + 0x4 + 1x2 + 0x1
=0 + 0 + 2 + 0

(2)10 = (0010)AIKEN KODU

Örnek 3.49 (8)10 = (?)AIKEN KODU dönüşümünü inceleyiniz.

            2 4 2 1
(8)10 = 1 1 1 0         (8)10 = (1110)AIKEN KODU


=1x2 + 1x4 + 1x2 + 1x0
=2 + 4 + 2 + 0
(8)10 = 8 olarak bulunur.


Örnek 3.50 (27,96)10 = (?)AIKEN KODU dönüşümünü inceleyiniz.

                        2         7          9          6
(27,96)10 =   0010    1101   1111     1100

(27,96)10 = (00101101,11111100)AIKEN KODU olarak bulunur.

 

3.2.9 5' de 2 Kodu

5’de 2 kodunda her onlu sayı, içinde mutlaka iki tane ‘1’ bulunan 5 bitlik ikili sayı ile temsil edilir. Bütün sayılarda mutlaka iki tane ‘1’ bulunduğundan hataların kolayca bulunmasını sağlar. Sayılar ikili sistemde ifade edilirken basamak değerleri ’7 4 2 1 0’ şeklinde sıralanır. (0)10 sayısını 5’ de 2 kodunda ifade etmek için (11000) kombinasyonu kullanılır.

Tablo 3.13 5'de 2 Kodu

DECIMAL SAYI

5’de 2 Kodlu Sayı

7 4 2 1 0

0

1 1 0 0 0

1

0 0  0 1 1

2

0 0 1 0 1

3

0 0 1 1 0

4

0 1 0 0 1

5

0 1 0 1 0

6

0 1 1 0 0

7

1 0 0 0 1

8

1 0 0 1 0

9

1 0 1 0 0

 

 

Örnek 3.51 (6)10 sayısının 5’ de 2 kodundaki karşılığını bulalım.

Mutlaka iki tane ‘1’ kullanılması gerektiğinden basamak değerleri toplamı onlu olarak ‘6’ sayısını verecek şekilde basamak değerinin altına ‘1’ yazılarak bulunur.

7 4 2 1 0
0 1 1 0 0               böylece; (6)10 = (01100)2 olarak bulunur.

Örnek 3.52 (0101010100) 5’ de 2 kodlanmış sayısının onlu sistemdeki karşılığını bulalım.

Her bir basamaktaki sayı 5 bit ile ifade edildiğinden, sayı 5 bitlik gruplara ayrılıp her bir grubun karşılığı olan onlu sayı yazılırsa;


(01010       10100)

      5               9


Sayıları bulunur. Bu durumda;     (0101010100)5’te 2 = (59)10     olarak bulunur.

3.2.10 Bar (Çubuk) Kodu
Onlu sayıların, farklı şekillerle düzenlenmiş çubuklarla ifade edildiği kodlama sistemi ‘bar kodu’ olarak isimlendirilir. Klavye’ ye alternatif olarak kullanılan bu kodlama yöntemi, veri giriş / çıkışının kolay olması nedeniyle özellikle stoklama işlemlerinde ve marketlerde yaygın olarak kullanılmaktadır. Sayıları ifade eden çubuk kombinasyonlarının oluşturulmasında, iki seviyeli kod ve çok seviyeli kod olmak üzere iki farklı yöntem kullanılır.

3.2.10.1 İki seviyeli bar kodlama
Bu sistemde geniş çubuk veya aralık (boşluk) binary ‘1’ değerini, dar çubuk veya aralık ‘0’ değerini ifade eder. İki seviyeli kodlara örnek olarak 39, 25 ve HP41C bar kodu olarak isimlendirilen yöntemler verilebilir.

1) 39 Bar Kodu 9' da 3 kodu olarak da tanımlanır ve 9 tane çubuk veya aralığı içerir. 9 çubuk veya aralıktan 3 tanesi geniştir.

Şekil 3.2 39 Barkodu Gösterimi

Şekilde gösterilen kombinasyon, 39 bar koduna bir örnektir. Bu örnekte toplam 9 çubuk / aralık bulunmaktadır. Bunlardan 1. ve 8. sıradaki çubuklar ile 3. sıradaki aralık lojik ‘1’ değerini, diğer çubuk ve aralıklar ‘0’ değerini temsil etmektedirler.

2) 25 Bar Kodu Bu kodlama sistemi 5’te 2 kodunun çubuklarla ifade edilen şeklidir. Bu kodda bilgiler yalnızca çubuklarla ifade edilir, aralıklar bir anlam ifade etmez. Her bilgi 5 çubuk ile oluşturulur ve bunlardan yalnızca iki tanesi geniştir. İnce çubuklar ‘0’, kalın çubuklar ‘1’ anlamına gelir.

Örnek 3.53 Onlu ‘0’ ve ‘6’ değerlerini 25 bar kodu ile gösterelim.

 Şekil 3.3 0'ın 25 Barkodu Gösterimi

  Dizisi onlu ‘0’ değerini temsil ederken,
 

 Şekil 3.4 6'nın 25 Barkodu Gösterimi

Dizisi onlu ‘6’ değerini temsil eder.

3.2.10.2 Çok seviyeli bar kodlama
Çok seviyeli bar kodlama olarak isimlendirilen ikinci çubuk kodlama sisteminde genellikle 4 seviyeli sayısal kodlar kullanılır. Bu sistemde çubuk + aralıklar 7 karakter uzunluğundadır ve her bilginin temsilinde mutlaka 2 çubuk, 2 aralık bulunmalıdır. Aşağıda çok seviyeli bar kodlama örneği verilmiştir.

 Şekil 3.5 Çok Seviyeli Bar Kodlama

XXX              XXXX                XXXXX                X
Ülke kodu    Firma kodu       Ürün kodu      Kontrol kodu
(3 basamak)    (4 basamak)    (5 basamak)     (1basamak)


 Şekil 3.6 Barkod Okuma İşlemi

Barkod okuma işleminde, yukarıda şeması çizilen işlemler gerçekleştirilir. Barkodlu bilgiler, ışıklı kalem veya sabit ışık üstü cam şeklindeki barkod okuyucu ile okunur. Bir barkod tarandığında, kodda bulunan çizgiler ve boşluklar elektrik sinyallerine dönüştürülürler. Çizgilerin elektriksel olarak 0V’ a, boşlukların 5V’ a karşılık geldiği Barkod sisteminde aşağıdaki değerler elde edilir. Elde edilen sinyalin bilgisayar tarafından anlaşılabilecek sayısal değerlere dönüştürülmesi gerekir. Bu dönüşüm işlemi kuralları önceden belirlenen bir kod çözücü ile yapılır. Kodu çözülen bilgiye karşılık gelen fiyat ve ürün bilgisi bilgisayar / kasa belleğinden okunur ve ekrana yansıtılır.

 Şekil 3.7 Barkodun Sayısal İşaretlere Dönüştürülmesi

3.3 ALFA SAYISAL KODLAR

Binary sayılar kullanarak alfabedeki bütün küçük ve büyük harfleri, noktalama işaretlerini ve özel işaretleri kodlamak mümkündür. Alfanümerik (Alfabetik ve nümerik kelimelerin birleştirilmesinden türetilmiştir) işaretlerin kodlanmasında kullanılan sistemler ASCII (American Standart Code for Information Interchange) ve EBCDIC (Extended Binary-Code Desimal Interchange Code) kodlarıdır.

3.3.1 ASCII Karakter Kodu
Günümüzde en çok kullanılan kod sistemidir. Alfanümerik karakterlerin kodlanmasında birliği sağlamak üzere geliştirilmiştir. ASCII kelimesi, American Standart Code for Information Interchange kelimesinin baş harfleri alınarak üretilmiştir.

ASCII kodu daha çok mikrobilgisayarlarda bilgi giriş ve çıkışı işlemlerinde kullanılır. ASCII kodu, klavyedeki karakterler ile programlama dilleri arasında aracılık yapar. ASCII kodunda bütün karakterler 7 bit uzunluğunda binary ifadeler kullanılarak kodlanmıştır. Örneğin A harfinin kodu 100 0001’dir.

 Tablo 3.14 ASCII Kodlu Karakterlerin Gösterilişi

Karakter
7-Bit ASCII
Sekizli
Onaltılı
Karakter
7-Bit ASCII
Sekizli
Onaltılı
A
100 0001
101
41
Z
101 1010
132
5A
B
100 0010
102
42
0
011 0000
060
30
C
100 0011
103
43
1
011 0001
061
31
D
100 0100
104
44
2
011 0010
062
32
E
100 0101
105
45
3
011 0011
063
33
F
100 0110
106
46
4
011 0100
064
34
G
100 0111
107
47
5
011 0101
065
35
H
100 1000
110
48
6
011 0110
066
36
I
100 1001
111
49
7
011 0111
067
37
J
100 1010
112
4A
8
011 1000
070
48
K
100 1011
113
4B
9
011 1001
071
39
L
100 1100
114
4C
boşluk
010 0000
040
20
M
100 1101
115
4D
.
010 1110
056
2E
N
100 1110
116
4E
(
010 1000
050
28
O
100 1111
117
4F
+
010 1011
053
2B
P
101 0000
120
50
$
010 0100
044
24
Q
101 0001
121
51
*
010 1010
052
2A
R
101 0010
122
52
)
010 1001
051
29
S
101 0011
123
53
-
010 1101
055
2D
T
101 0100
124
54
/
010 1111
057
2F
U
101 0101
125
55
,
010 1100
054
2C
V
101 0110
126
56
=
011 1101
075
3D
W
101 0111
127
57
RETURN
000 1101
015
0D
X
101 1000
130
58
LINEFEED
000 1010
012
0A
Y
101 1001
131
59
       

Örnek 3.54 ‘DIGITAL’  kelimesinin elde edilebilmesi için yazılması gerekli ASCII kodlu bilgiyi yazalım.

Her bir karakterin karşılığı olan bilgilerin yazılması ile;

D = 100 0100
 I = 100 1001
G = 100 0111
 I = 100 1001
T = 101 0100
A = 100 0001
L = 100 1100 elde edilir.

Örnek 3.55 ‘BASIC’ programlama dilinde program yazan bir programcı ‘NEXT’ boşluk ‘I’ yazmış olsun. Bu durumda ASCII kodunda bellekte saklanacak bilgi nedir?

Karakter       Onaltılı          İkili
N                     4E           0100  1110
E                      45           0100  0101
X                      58          0101  1000
T                      54           0101  0100
Space               20           0010  0000
 I                      49           0100  1001
Örnek 3.56

ASCII kodlu bir sayının onlu ve ikili karşılığı   ===>

3.3.2 EBCDIC Kodu
EBCDIC adı Extended Binary-Code Decimal Interchange Code kelimelerinin baş harflerinden türetilmiştir. Bu kod daha çok büyük boy bilgisayar sistemlerinde kullanılır. EBDIC kodunda karakterler 8 bit uzunluğunda binary ifadeler kullanılarak kodlanmıştır.

Örnek 3.57 Aşağıda Binary (İkili) formda gönderilen EBCDIC kodlanmış mesajın karşılığını bulunuz.

11001000 11000101 11010011 11010111

Tablodan her 8 bitlik bilginin karşılığı bulunarak mesajın anlamı bulunur.

11001000      11000101     11010011     11010111
    C816               C5 16             D316             D716
     H                    E                   L                   P

 Tablo 3.15 EBCDIC Kodlu Karakterlerin Gösterilişi

Karakter
8-Bit EBCDIC
Hexadecimal Karşılığı
Karakter
8-Bit EBCDIC
Hexadecimal Karşılığı
A
1100 0001
C1
Z
1110 1001
E9
B
1100 0010
C2
0
1111 0000
F0
C
1100 0011
C3
1
1111 0001
F1
D
1100 0100
C4
2
1111 0010
F2
E
1100 0101
C5
3
1111 0011
F3
F
1100 0110
C6
4
1111 0100
F4
G
1100 0111
C7
5
1111 0101
F5
H
1100 1000
C8
6
1111 0110
F6
I
1100 1001
C9
7
1111 0111
F7
J
1101 0001
D1
8
1111 1000
F8
K
1101 0010
D2
9
1111 1001
F9
L
1101 0011
D3
boşluk
0100 0000
40
M
1101 0100
D4
.
0100 1011
4B
N
1101 0101
D5
(
0100 1101
4D
O
1101 0110
D6
+
0100 1110
4E
P
1101 0111
D7
$
0101 1011
5B
Q
1101 1000
D8
*
0101 1100
5C
R
1101 1001
D9
)
0101 1101
5D
S
1110 0010
E2
-
0110 0000
60
T
1110 0011
E3
/
0110 0001
61
U
1110 0100
E4
,
0110 1011
6B
V
1110 0101
E5
=
0111 1110
7E
W
1110 0110
E6
     
X
1110 0111
E7
     
Y
1110 1000
E8
     

 

Sayısal kodlamaların bir kısmı aşağıdaki tabloda gösterilmiştir.

 Tablo 3.16 Sayısal Kodlamalar

BCD KODLAR

ONLU DEĞER

BCD KODU

GRAY KODU

ARTI 3 KODU

5’TE 2
KODU

TEK PARITY KODU

ÇİFT PARITY KODU

AIKEN KODU

8421

84-2-1

BASAMAK DEĞERİ YOK

Xs-3

74210

PARITY BİT
8421

PARITY BİT
8421

2421

0

0000

0000

0000

0011

11000

1  0000

0  0000

0000

1

0001

0111

0001

0100

00011

0  0001

1  0001

0001

2

0010

0110

0011

0101

00101

0  0010

1  0010

0010

3

0011

0101

0010

0110

00110

1  0011

0  0011

0011

4

0100

0100

0110

0111

01001

0  0100

1  0100

0100

5

0101

1011

0111

1000

01010

1  0101

0  0101

1011

6

0110

1010

0101

1001

01100

 1  0110

0  0110

1100

7

0111

1001

0100

1010

10001

0  0111

1  0111

1101

8

1000

1000

1100

1011

10010

0  1000

1  1000

1110

9

1001

1111

1101

1100

10100

1  1001

0  1001

1111