Bu madde, uygun değildir.Kasım 2011) ( |
Bu madde olması gerekenden az içermektedir veya içermemektedir.Aralık 2023) ( |
BCD (Binary Coded Decimal) kodu, bilgisayar ve elektronik sistemlerinde onluk tabandaki (decimal) sayıların ikilik tabana (binary) dönüştürülmesi için kullanılan sayısal kodlama metodudur. Bu dönüştürme işlemi yapılırken öncelikle sayının her bir basamağı tek tek ikilik tabana (genellikle dört veya sekiz bit ile ifade edilir ancak farklı uzunluklarda da olabilir) çevrilir ve ardından her basamağın karşılık geldiği binary değerler sırasıyla birleştirilerek sayının BCD Kodu ile gösterimi elde edilir.
Bir bilgisayar için en doğal sistem ikili sistem olmasına rağmen, çoğu insan ondalık sisteme daha alışkındır. BCD Kodu'nun en büyük avantajı da elektronik sistemlerde BCD ile kodlanmış olarak kullanılan ikilik tabandaki sayıların insanlar tarafından kolaylıkla anlaşılıp onluk sisteme çevrilebilmesidir.
BCD Kodu günümüzde eskisi kadar yaygın olarak kullanılmamakla birlikte geçmişte onluk sistemi kullanan (decimal computer) bilgisayarlarda yaygın olarak kullanılmıştır. Günümüzde de tam sayı veya ondalıklı sayı işlemlerinin önemli olduğu finans, sanayi ve ticaret gibi alanlardaki sistemlerde kullanılmaktadır.
Temel Bilgiler
Girişte de bahsedildiği gibi, BCD Kodu kullanılarak onluk tabandaki sayılar ikili tabanda 4 bit ile gösterilebilir.
Onluk İkilik BCD(8421) 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111 8 1000 1000 9 1001 1001 10 1010 0001 0000 11 1011 0001 0001 12 1100 0001 0010 13 1101 0001 0011 14 1110 0001 0100 15 1111 0001 0101
Tablodaki 8421 ifadesi ikili sistemdeki basamakları (23222120) göstermektedir.
Onluk tabadaki sayıları BCD'ye göre kodlamak için şu methodlar kullanılabilir:
- Genişletilmiş (Uncompressed) BCD: Onluk tabandaki sayının her basamağı 1 byte ile gösterilir. Gösterimin ilk 4 biti herhangi bir büyüklüğü ifade etmezken, son 4 biti sayının ikili tabandaki gösterimine eşittir.
Onluk tabandaki 91
sayısı Uncompressed BCD'ye göre şu şekilde kodlanır:
Onluk Taban: 9 1 İkilik Taban: 0000 1001 0000 0001
- Sıkıştırılmış (Packed) BCD: Onluk tabandaki sayının her iki basamağı 1 byte ile gösterilir. İlk 4 bit (0-3) en anlamsız kısım (the least significant nibble), diğer 4 bit en anlamlı kısım (the most significant nibble) olarak adlandırılır.
Onluk tabandaki 91
sayısı Packed BCD'ye göre şu şekilde kodlanır:
Onluk Taban: 9 1 İkilik Taban: 1001 0001
Sonuç olarak, uncompressed BCD 0-9 aralığındaki (9 dahil), packed BCD ise 0-99 aralığındaki (99 dahil) sayılar için kullanılabilir.
Bir byte'dan daha büyük olan sayılar BCD ile kodlanırken ardışık byte'lar kullanılabilir. Örneğin onluk tabandaki 12345
sayısı packed BCD ile şu şekilde kodlanır:
Onluk Taban: 1 2 3 4 5 İkilik Taban: 0000 0001 0010 0011 0100 0101
Bu örnekte baştaki en anlamlı 4 bit sayının asıl değerinin 012345
olduğunu göstermektedir.
Verilen öneklerden de anlaşılacağı üzere uncompressed BCD kullanarak yapılan kodlama packed BCD'ye göre yüzde yüz daha fazla hafıza gerektirir.
Elektronik Sistemlerde BCD Kodu
BCD sayısal bir değerin gösterildiği ve özellikle sayısal mantığa dayalı elektronik sistemlerde oldukça yaygındır. BCD sayesinde, sayısal bir veride değişim yapmak oldukça kolay bir hal alır. Çünkü her rakam ayrı bir alt devre gibi incelenir. Eğer sayısal değerler yalnızca ikilik tabanda depolanıyor ve değiştiriliyorsa, böyle bir displayi arayüzlemek daha karmaşık bir devre gerektirir. Bu nedenle, bazı hesaplamalarda ikilik sisteme çevirmek yerine BCD koduna çevirmek daha basit ve kolaydır. Gömülü bir mikrodenetleyici ve diğer işlemciler kullanıldığında da aynı teknik uygulanır. Genellikle kısa kodlar, ikilik tabandaki bir sayıyı BCD formatına çevirmek masraflı bir işlem olduğu için kısıtlı kapasitede işlemcilerin oluşmasına neden olurlar.
Sıkıştırılmış BCD
İki basamağın her birinin 8 bitte kodlanmasına sıkıştırılmış BCD (packed BCD ya da packed decimal) denir. Sıkıştırılmış BCD 1960'lardan bu yana kullanılmaya başlanmıştır ve bütün IBM merkezi işlemci donanımlarda uygulanmıştır. Çoğu gösterimde bir ya da iki bayt on tabanında bir tam sayıyı ifade eder. Her bir baytta iki tane dörtlü bit (İngilizce'de nibble olarak ifade edilir.) vardır, bu dörtlü bitlerin her biri bir onluk tabandaki rakamı gösterir. En üstteki(hafızadaki adresi üstte olan) dörtlü en anlamlı, diğer dörtlü ise en anlamsız basamak şeklinde adlandırılır. En sağdaki baytın en anlamsız dörtlüsü genellikle işareti gösterir. Örneğin, 4 baytlık bir değer 8 tane dörtlü içerir. En üstteki 7 dörtlü), 7 rakamlı onluk tabandaki değerin rakamlarını hafızada tutar ve en alttaki dörtlü onluk tam sayı değerinin işaretini gösterir.
Standart işaret değerleri pozitifler için 1100 (on altılık tabanda C) ve negatifler için 1101 (on altılık tabanda D)'dir. On altılık tabandaki bu kısaltmalar C için Credit, D için Debit'ten gelir, bunun nedeni sıkıştırılmış BCD'nin muhasebede yaygın olarak kullanılmasından kaynaklanır. Ayrıca pozitif sayılarda 1010 (A), 1110 (E) ve negatif sayılarda 1011 (B) işaretleri de bulunmaktadır. 127 sayısı sıkıştırılmış BCD'de 0001 0010 0111 1100 (127C) şeklinde, -127 sayısı ise 0001 0010 0111 1101 (127D) olarak gösterilir.
İşaret Basamağı | BCD 8 4 2 1 | İşaret |
---|---|---|
A | 1 0 1 0 | + |
B | 1 0 1 1 | − |
C | 1 1 0 0 | + |
D | 1 1 0 1 | − |
E | 1 1 1 0 | + |
F | 1 1 1 1 | + |
Bir bit dizisi ne kadar uzun olursa olsun her zaman çift sayıda dörtlü vardır çünkü her bir baytta 2 dörtlü vardır. Bu nedenle, bir n uzunluğunda bit dizisi en fazla (2n-1) tane onluk tabanda rakam (rakam sayısı tek sayıda olacak şekilde) içerebilir. d basamaklı bir onlu sayı 1/2(d+1) baytlık bir hafıza alanını kaplar. Örneğin, 32 bitlik bir bit dizisinde işaret ile birlikte 7 tane onluk tabanda rakam vardır ve bu dizi +-9,999,999 aralığındaki bütün sayıları temsil edebilir. Yani -1,234,567 sayısı 7 basamaklıdır ve aşağıdaki gibi kodlanır:
0001 0010 0011 0100 0101 0110 0111 1101 1 2 3 4 5 6 7 −
Ancak, yine 32 uzunluğunda bir bit dizisinin 2'ye tümleyeni ile -2,147,483,648'den -2,147,483,647' ye kadar olan bütün tam sayıları gösterebiliriz. Sıkıştırılmış BCD bellek kullanımı açısından çok verimli olmamasına karşın ASCII, EBCDIC veya Unicode'un diğer kodlama çeşitleri aritmetik işlemler gerektirdiği için çok kullanılmaz. Sıkıştırılmış BCD fixed-point packed decimal ve higher-density encodings olmak üzere ikiye ayrılır.
Ayrılmış Onlu
Ayrılmış onlu sayısal gösteriminde onluk tabandaki her rakamın en alttaki dört biti bellekte bir baytlık alanda saklanır. En üstteki dört bit ise ayrılmış bitler olarak ifade edilir ve genellikle sabit bir değere ayarlanır, böylece saklanan baytta rakamı ifade eden bir karakter değeri tutulur. EBCDIC sistemleri 1111 ayrılmış değerini kullanırlar. Bu değer EBCDIC kodunda 0'dan 9'a kadar kadar herhangi bir karakter değerini alabilir. Aynı şekilde ASCII'de de 0011 ayrılmış değeri kullanılır. Bu ayrılmış değer on altılık tabanda 30'dan 39'a kadar olan karakterleri ifade eder.
İşaretli ayrılmış onlu değerlerinde en anlamsız ayrılmış dörtlü işaret rakamını gösterir (işaretli sıkıştırılmış BCD ile aynı değerlerdir.). Örneğin -123 sayısının ayrılmış onlu değeri on altılık tabanda F1 F2 D3 şeklinde kodlanır:
F1 F2 D3 1 2 -3
EBCDIC sisteminde ayrılmış onluyu dönüştürme tablosu
BCD Rakamı | 16'lık Taban | EBCDIC Karakteri | ||||||
---|---|---|---|---|---|---|---|---|
0+ | C0 | A0 | E0 | F0 | { (*) | \ (*) | 0 | |
1+ | C1 | A1 | E1 | F1 | A | ~ (*) | 1 | |
2+ | C2 | A2 | E2 | F2 | B | s | S | 2 |
3+ | C3 | A3 | E3 | F3 | C | t | T | 3 |
4+ | C4 | A4 | E4 | F4 | D | u | U | 4 |
5+ | C5 | A5 | E5 | F5 | E | v | V | 5 |
6+ | C6 | A6 | E6 | F6 | F | w | W | 6 |
7+ | C7 | A7 | E7 | F7 | G | x | X | 7 |
8+ | C8 | A8 | E8 | F8 | H | y | Y | 8 |
9+ | C9 | A9 | E9 | F9 | I | z | Z | 9 |
0− | D0 | B0 | } (*) | ^ (*) | ||||
1− | D1 | B1 | J | |||||
2− | D2 | B2 | K | |||||
3− | D3 | B3 | L | |||||
4− | D4 | B4 | M | |||||
5− | D5 | B5 | N | |||||
6− | D6 | B6 | O | |||||
7− | D7 | B7 | P | |||||
8− | D8 | B8 | Q | |||||
9− | D9 | B9 | R |
BCD ile Toplama İşlemi
Öncelikle ikilik tabanda toplama işlemi yapılır sonra sonuç BCD'ye çevrilir. Eğer toplamın değeri 9'dan büyükse, bu toplamı BCD'ye çevirmenin kolay bir yolu sayıya 6 eklemektir. Örneğin;
1001 + 1000 = 10001 9 + 8 = 17
Burada istenen sonucun onluk tabanda değil ikilik tabanda olduğunu görüyoruz. BCD'de onluk tabanda olduğu gibi bir basamaktaki rakamın değeri 9'dan büyük olamaz. Bu durumu düzeltmek için toplama 6 (0110) eklenir ve sonuç 2 dörtlüye ayrılır:
10001 + 0110 = 00010111 => 0001 0111 17 + 6 = 23 1 7
Sonucun dörtlülere ayrılmış halinde 0001 1'i ve 0111 7'yi ifade eder. Bu sayı BCD'de 17'yi ifade eder.
Bu yöntem birden fazla rakamın toplanması durumu için de geçerlidir. Böyle bir durumda gruplar toplanarak sağdan sola doğru gidilir ve toplamın 2.basamağı elde olarak tutulur. Sonucun her biti için 9 olup olmadığı kontrol edilir.
BCD ile Çıkarma İşlemi
Çıkarma işlemi, eksilene çıkarılanın ona tümleyeni(ten's complement) eklenerek yapılır. BCD ile sayıların işareti gösterilirken; pozitif sayılar için 0000, negatif sayılar için 1001 kullanılır (diğer 14 ihtimal işaret açısından bir anlam taşımaz).
BCD kullanılarak 357 - 432 işlemi şu şekilde yapılır:
İşaretiyle birlikte 357 sayısının (eksilen) BCD gösterimi 0000 0011 0101 0111'dir. -432 sayısının (çıkan) ona tümleyeni bulunurken sayının dokuza tümleyeni alınıp bu değere 1 eklenir, dolayısıyla 999 − 432 = 567 ve 567 + 1 = 568 bulunur. Bu değer negatif olduğu için BCD karşılığı 1001 0101 0110 1000 şeklindedir. Son olarak da bu iki değer şu şekilde toplanır:
0000 0011 0101 0111 + 1001 0101 0110 1000 = 1001 1000 1011 1111 0 3 5 7 + 9 5 6 8 = 9 8 11 15
Bulunan değerler onluk sistemde kullanılamayacağı için buradaki 1001'den büyük her BCD basamağına elde biti oluşturmak için 6 eklenir (Burada 6 eklenmesinin nedeni 24 = 16 değerden sadece 0000-1001 aralığındaki 10 değerin BCD için anlamlı olmasıdır.).Buna göre sonuç şu şekildedir:
1001 1000 1011 1111 + 0000 0000 0110 0110 = 1001 1001 0010 0101 9 8 11 15 + 0 0 6 6 = 9 9 2 5
Bulunan 1001 1001 0010 0101 değeri işaretli gösterimde -925 değerine eşittir. 925 sayısının ona tümleyeni ise 999 - 925 = 74 ve 74 + 1 = 75'tir. Sonuç olarak 357 - 432 = -75 şeklinde BCD kullanılarak doğru hesaplanmıştır.
Farklı basamak uzunluğuna sahip sayılarda çıkarma işlemi yapılırken basamak sayısı az olanın önüne 0 eklenir. Örneğin, 1053 - 122 işlemi yapılırken 0122 sayısının ona tümleyeni eksilene eklenerek çıkarma işlemi yapılır.
Tarihçe
Tabloda da belirtildiği gibi başka yöntemler de olmasına rağmen, BCD en çok kullanılan kodlama biçimidir. Tabloda BCD yöntemi BCD 8421 olarak gösterilmektedir. Burada 8421 her bir bitin ağırlığını ifade eder. Ayrıca 5.sütunda bu dört basamağın ikisinin negatif olduğuna dikkat ediniz. Tabloda gösterilmiş olan ASCII ve EBCDIC karakter kodlarının her ikisi de ayrılmış BCD'nin birer örneğidir.
Aşağıdaki tablo onluk tabandaki rakamların çeşitli BCD sistemlerindeki şekillerini göstermektedir:
Rakam | BCD 8 4 2 1 | Fazlalık-3 ya da Stibitz Kodu | BCD 2 4 2 1 ya da Aiken Kodu | BCD 8 4 −2 −1 | IBM 702 IBM 705 IBM 7080 IBM 1401 8 4 2 1 | ASCII 0000 8421 | EBCDIC 0000 8421 |
---|---|---|---|---|---|---|---|
0 | 0000 | 0011 | 0000 | 0000 | 1010 | 0011 0000 | 1111 0000 |
1 | 0001 | 0100 | 0001 | 0111 | 0001 | 0011 0001 | 1111 0001 |
2 | 0010 | 0101 | 0010 | 0110 | 0010 | 0011 0010 | 1111 0010 |
3 | 0011 | 0110 | 0011 | 0101 | 0011 | 0011 0011 | 1111 0011 |
4 | 0100 | 0111 | 0100 | 0100 | 0100 | 0011 0100 | 1111 0100 |
5 | 0101 | 1000 | 1011 | 1011 | 0101 | 0011 0101 | 1111 0101 |
6 | 0110 | 1001 | 1100 | 1010 | 0110 | 0011 0110 | 1111 0110 |
7 | 0111 | 1010 | 1101 | 1001 | 0111 | 0011 0111 | 1111 0111 |
8 | 1000 | 1011 | 1110 | 1000 | 1000 | 0011 1000 | 1111 1000 |
9 | 1001 | 1100 | 1111 | 1111 | 1001 | 0011 1001 | 1111 1001 |
Binary ile BCD'nin karşılaştırılması
- - BCD kodlama ikilik sistemden daha verimsizdir. Örneğin, (10)10 sayısını gösterebilmek için BCD'de 8 bit gerekirken binary sistemde 4 bit yeterlidir.
- - BCD'de aritmetik işlemler karmaşıktır.
- - Sayıların BCD'den onluk sisteme, onluk sistemden BCD'ye çevrimi ikilik sisteme göre daha kolaydır.
Diğer BCD Gösterimleri
Diğer sayı sistemlerinde kullanılabilecek çeşitli BCD gösterimleri mevcuttur. Bunlardan bazıları şu şekildedir:
İşaretli Gösterimler
İşaretli onluk tabandaki sayılar farklı şekillerde ifade edilebilir. Örneğin COBOL programlama dil 5 farklı ayrılmış onlu formatı için uygun bir dildir. Bu formatlardan her biri sayının işaretini farklı şekillerde ifade eder:
Tip | Tanım | Örnek |
---|---|---|
İşaretsiz | İşareti gösteren bit yok | F1 F2 F3 |
Standart form | İşareti gösteren 4 bit en anlamsız bayttadır | F1 F2 C3 |
Signed leading (overpunch) | İşareti gösteren 4 bit en anlamlı bayttadır | C1 F2 F3 |
Ayrılmış standart form | İşareti gösteren karakter baytları ('+' ya da '−' ) sondadır | F1 F2 F3 2B |
Signed leading separate | İşareti gösteren karakter baytları ('+' ya da '−' ) baştadır | 2B F1 F2 F3 |
Telefonlarda BCD
TBCD (Telephony Binary Coded Decimal), BCD kodunda kullanılmayan 6 değerlerle özel telefon karakterlerinin gösterilmesinde kullanılır.
Onluk Tabandaki Karakterler | BCD 8 4 2 1 |
---|---|
* | 1 0 1 0 |
# | 1 0 1 1 |
a | 1 1 0 0 |
b | 1 1 0 1 |
c | 1 1 1 0 |
Basamak sayısı tek olduğunda | 1 1 1 1 |
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bu madde Vikipedi bicem el kitabina uygun degildir Maddeyi Vikipedi standartlarina uygun bicimde duzenleyerek Vikipedi ye katkida bulunabilirsiniz Gerekli duzenleme yapilmadan bu sablon kaldirilmamalidir Kasim 2011 Bu madde olmasi gerekenden az ic baglanti icermektedir veya hic icermemektedir Lutfen bu sayfadan ilgili maddelere ic baglanti vermeye calisin Aralik 2023 BCD Binary Coded Decimal kodu bilgisayar ve elektronik sistemlerinde onluk tabandaki decimal sayilarin ikilik tabana binary donusturulmesi icin kullanilan sayisal kodlama metodudur Bu donusturme islemi yapilirken oncelikle sayinin her bir basamagi tek tek ikilik tabana genellikle dort veya sekiz bit ile ifade edilir ancak farkli uzunluklarda da olabilir cevrilir ve ardindan her basamagin karsilik geldigi binary degerler sirasiyla birlestirilerek sayinin BCD Kodu ile gosterimi elde edilir Bir matematikci hidrolog ve programci olan Kazakov Vladimir Mihaylovic tarafindan yapilmis bir not Bir bilgisayar icin en dogal sistem ikili sistem olmasina ragmen cogu insan ondalik sisteme daha aliskindir BCD Kodu nun en buyuk avantaji da elektronik sistemlerde BCD ile kodlanmis olarak kullanilan ikilik tabandaki sayilarin insanlar tarafindan kolaylikla anlasilip onluk sisteme cevrilebilmesidir BCD Kodu gunumuzde eskisi kadar yaygin olarak kullanilmamakla birlikte gecmiste onluk sistemi kullanan decimal computer bilgisayarlarda yaygin olarak kullanilmistir Gunumuzde de tam sayi veya ondalikli sayi islemlerinin onemli oldugu finans sanayi ve ticaret gibi alanlardaki sistemlerde kullanilmaktadir Temel BilgilerGiriste de bahsedildigi gibi BCD Kodu kullanilarak onluk tabandaki sayilar ikili tabanda 4 bit ile gosterilebilir Onluk Ikilik BCD 8421 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111 8 1000 1000 9 1001 1001 10 1010 0001 0000 11 1011 0001 0001 12 1100 0001 0010 13 1101 0001 0011 14 1110 0001 0100 15 1111 0001 0101 Tablodaki 8421 ifadesi ikili sistemdeki basamaklari 23222120 gostermektedir Onluk tabadaki sayilari BCD ye gore kodlamak icin su methodlar kullanilabilir Genisletilmis Uncompressed BCD Onluk tabandaki sayinin her basamagi 1 byte ile gosterilir Gosterimin ilk 4 biti herhangi bir buyuklugu ifade etmezken son 4 biti sayinin ikili tabandaki gosterimine esittir Onluk tabandaki b 91 b sayisi Uncompressed BCD ye gore su sekilde kodlanir Onluk Taban 9 1 Ikilik Taban 0000 1001 0000 0001 Sikistirilmis Packed BCD Onluk tabandaki sayinin her iki basamagi 1 byte ile gosterilir Ilk 4 bit 0 3 en anlamsiz kisim the least significant nibble diger 4 bit en anlamli kisim the most significant nibble olarak adlandirilir Onluk tabandaki b 91 b sayisi Packed BCD ye gore su sekilde kodlanir Onluk Taban 9 1 Ikilik Taban 1001 0001 Sonuc olarak uncompressed BCD 0 9 araligindaki 9 dahil packed BCD ise 0 99 araligindaki 99 dahil sayilar icin kullanilabilir Bir byte dan daha buyuk olan sayilar BCD ile kodlanirken ardisik byte lar kullanilabilir Ornegin onluk tabandaki b 12345 b sayisi packed BCD ile su sekilde kodlanir Onluk Taban 1 2 3 4 5 Ikilik Taban 0000 0001 0010 0011 0100 0101 Bu ornekte bastaki en anlamli 4 bit sayinin asil degerinin b 012345 b oldugunu gostermektedir Verilen oneklerden de anlasilacagi uzere uncompressed BCD kullanarak yapilan kodlama packed BCD ye gore yuzde yuz daha fazla hafiza gerektirir Elektronik Sistemlerde BCD KoduBCD sayisal bir degerin gosterildigi ve ozellikle sayisal mantiga dayali elektronik sistemlerde oldukca yaygindir BCD sayesinde sayisal bir veride degisim yapmak oldukca kolay bir hal alir Cunku her rakam ayri bir alt devre gibi incelenir Eger sayisal degerler yalnizca ikilik tabanda depolaniyor ve degistiriliyorsa boyle bir displayi arayuzlemek daha karmasik bir devre gerektirir Bu nedenle bazi hesaplamalarda ikilik sisteme cevirmek yerine BCD koduna cevirmek daha basit ve kolaydir Gomulu bir mikrodenetleyici ve diger islemciler kullanildiginda da ayni teknik uygulanir Genellikle kisa kodlar ikilik tabandaki bir sayiyi BCD formatina cevirmek masrafli bir islem oldugu icin kisitli kapasitede islemcilerin olusmasina neden olurlar Sikistirilmis BCDIki basamagin her birinin 8 bitte kodlanmasina sikistirilmis BCD packed BCD ya da packed decimal denir Sikistirilmis BCD 1960 lardan bu yana kullanilmaya baslanmistir ve butun IBM merkezi islemci donanimlarda uygulanmistir Cogu gosterimde bir ya da iki bayt on tabaninda bir tam sayiyi ifade eder Her bir baytta iki tane dortlu bit Ingilizce de nibble olarak ifade edilir vardir bu dortlu bitlerin her biri bir onluk tabandaki rakami gosterir En ustteki hafizadaki adresi ustte olan dortlu en anlamli diger dortlu ise en anlamsiz basamak seklinde adlandirilir En sagdaki baytin en anlamsiz dortlusu genellikle isareti gosterir Ornegin 4 baytlik bir deger 8 tane dortlu icerir En ustteki 7 dortlu 7 rakamli onluk tabandaki degerin rakamlarini hafizada tutar ve en alttaki dortlu onluk tam sayi degerinin isaretini gosterir Standart isaret degerleri pozitifler icin 1100 on altilik tabanda C ve negatifler icin 1101 on altilik tabanda D dir On altilik tabandaki bu kisaltmalar C icin Credit D icin Debit ten gelir bunun nedeni sikistirilmis BCD nin muhasebede yaygin olarak kullanilmasindan kaynaklanir Ayrica pozitif sayilarda 1010 A 1110 E ve negatif sayilarda 1011 B isaretleri de bulunmaktadir 127 sayisi sikistirilmis BCD de 0001 0010 0111 1100 127C seklinde 127 sayisi ise 0001 0010 0111 1101 127D olarak gosterilir Isaret Basamagi BCD 8 4 2 1 IsaretA 1 0 1 0 B 1 0 1 1 C 1 1 0 0 D 1 1 0 1 E 1 1 1 0 F 1 1 1 1 Bir bit dizisi ne kadar uzun olursa olsun her zaman cift sayida dortlu vardir cunku her bir baytta 2 dortlu vardir Bu nedenle bir n uzunlugunda bit dizisi en fazla 2n 1 tane onluk tabanda rakam rakam sayisi tek sayida olacak sekilde icerebilir d basamakli bir onlu sayi 1 2 d 1 baytlik bir hafiza alanini kaplar Ornegin 32 bitlik bir bit dizisinde isaret ile birlikte 7 tane onluk tabanda rakam vardir ve bu dizi 9 999 999 araligindaki butun sayilari temsil edebilir Yani 1 234 567 sayisi 7 basamaklidir ve asagidaki gibi kodlanir 0001 0010 0011 0100 0101 0110 0111 1101 1 2 3 4 5 6 7 Ancak yine 32 uzunlugunda bir bit dizisinin 2 ye tumleyeni ile 2 147 483 648 den 2 147 483 647 ye kadar olan butun tam sayilari gosterebiliriz Sikistirilmis BCD bellek kullanimi acisindan cok verimli olmamasina karsin ASCII EBCDIC veya Unicode un diger kodlama cesitleri aritmetik islemler gerektirdigi icin cok kullanilmaz Sikistirilmis BCD fixed point packed decimal ve higher density encodings olmak uzere ikiye ayrilir Ayrilmis OnluAyrilmis onlu sayisal gosteriminde onluk tabandaki her rakamin en alttaki dort biti bellekte bir baytlik alanda saklanir En ustteki dort bit ise ayrilmis bitler olarak ifade edilir ve genellikle sabit bir degere ayarlanir boylece saklanan baytta rakami ifade eden bir karakter degeri tutulur EBCDIC sistemleri 1111 ayrilmis degerini kullanirlar Bu deger EBCDIC kodunda 0 dan 9 a kadar kadar herhangi bir karakter degerini alabilir Ayni sekilde ASCII de de 0011 ayrilmis degeri kullanilir Bu ayrilmis deger on altilik tabanda 30 dan 39 a kadar olan karakterleri ifade eder Isaretli ayrilmis onlu degerlerinde en anlamsiz ayrilmis dortlu isaret rakamini gosterir isaretli sikistirilmis BCD ile ayni degerlerdir Ornegin 123 sayisinin ayrilmis onlu degeri on altilik tabanda F1 F2 D3 seklinde kodlanir F1 F2 D3 1 2 3 EBCDIC sisteminde ayrilmis onluyu donusturme tablosu BCD Rakami 16 lik Taban EBCDIC Karakteri0 C0 A0 E0 F0 01 C1 A1 E1 F1 A 12 C2 A2 E2 F2 B s S 23 C3 A3 E3 F3 C t T 34 C4 A4 E4 F4 D u U 45 C5 A5 E5 F5 E v V 56 C6 A6 E6 F6 F w W 67 C7 A7 E7 F7 G x X 78 C8 A8 E8 F8 H y Y 89 C9 A9 E9 F9 I z Z 90 D0 B0 1 D1 B1 J 2 D2 B2 K 3 D3 B3 L 4 D4 B4 M 5 D5 B5 N 6 D6 B6 O 7 D7 B7 P 8 D8 B8 Q 9 D9 B9 R BCD ile Toplama IslemiOncelikle ikilik tabanda toplama islemi yapilir sonra sonuc BCD ye cevrilir Eger toplamin degeri 9 dan buyukse bu toplami BCD ye cevirmenin kolay bir yolu sayiya 6 eklemektir Ornegin 1001 1000 10001 9 8 17 Burada istenen sonucun onluk tabanda degil ikilik tabanda oldugunu goruyoruz BCD de onluk tabanda oldugu gibi bir basamaktaki rakamin degeri 9 dan buyuk olamaz Bu durumu duzeltmek icin toplama 6 0110 eklenir ve sonuc 2 dortluye ayrilir 10001 0110 00010111 gt 0001 0111 17 6 23 1 7 Sonucun dortlulere ayrilmis halinde 0001 1 i ve 0111 7 yi ifade eder Bu sayi BCD de 17 yi ifade eder Bu yontem birden fazla rakamin toplanmasi durumu icin de gecerlidir Boyle bir durumda gruplar toplanarak sagdan sola dogru gidilir ve toplamin 2 basamagi elde olarak tutulur Sonucun her biti icin 9 olup olmadigi kontrol edilir BCD ile Cikarma IslemiCikarma islemi eksilene cikarilanin ona tumleyeni ten s complement eklenerek yapilir BCD ile sayilarin isareti gosterilirken pozitif sayilar icin 0000 negatif sayilar icin 1001 kullanilir diger 14 ihtimal isaret acisindan bir anlam tasimaz BCD kullanilarak 357 432 islemi su sekilde yapilir Isaretiyle birlikte 357 sayisinin eksilen BCD gosterimi 0000 0011 0101 0111 dir 432 sayisinin cikan ona tumleyeni bulunurken sayinin dokuza tumleyeni alinip bu degere 1 eklenir dolayisiyla 999 432 567 ve 567 1 568 bulunur Bu deger negatif oldugu icin BCD karsiligi 1001 0101 0110 1000 seklindedir Son olarak da bu iki deger su sekilde toplanir 0000 0011 0101 0111 1001 0101 0110 1000 1001 1000 1011 1111 0 3 5 7 9 5 6 8 9 8 11 15 Bulunan degerler onluk sistemde kullanilamayacagi icin buradaki 1001 den buyuk her BCD basamagina elde biti olusturmak icin 6 eklenir Burada 6 eklenmesinin nedeni 24 16 degerden sadece 0000 1001 araligindaki 10 degerin BCD icin anlamli olmasidir Buna gore sonuc su sekildedir 1001 1000 1011 1111 0000 0000 0110 0110 1001 1001 0010 0101 9 8 11 15 0 0 6 6 9 9 2 5 Bulunan 1001 1001 0010 0101 degeri isaretli gosterimde 925 degerine esittir 925 sayisinin ona tumleyeni ise 999 925 74 ve 74 1 75 tir Sonuc olarak 357 432 75 seklinde BCD kullanilarak dogru hesaplanmistir Farkli basamak uzunluguna sahip sayilarda cikarma islemi yapilirken basamak sayisi az olanin onune 0 eklenir Ornegin 1053 122 islemi yapilirken 0122 sayisinin ona tumleyeni eksilene eklenerek cikarma islemi yapilir TarihceTabloda da belirtildigi gibi baska yontemler de olmasina ragmen BCD en cok kullanilan kodlama bicimidir Tabloda BCD yontemi BCD 8421 olarak gosterilmektedir Burada 8421 her bir bitin agirligini ifade eder Ayrica 5 sutunda bu dort basamagin ikisinin negatif olduguna dikkat ediniz Tabloda gosterilmis olan ASCII ve EBCDIC karakter kodlarinin her ikisi de ayrilmis BCD nin birer ornegidir Asagidaki tablo onluk tabandaki rakamlarin cesitli BCD sistemlerindeki sekillerini gostermektedir Rakam BCD 8 4 2 1 Fazlalik 3 ya da Stibitz Kodu BCD 2 4 2 1 ya da Aiken Kodu BCD 8 4 2 1 IBM 702 IBM 705 IBM 7080 IBM 1401 8 4 2 1 ASCII 0000 8421 EBCDIC 0000 84210 0000 0011 0000 0000 1010 0011 0000 1111 00001 0001 0100 0001 0111 0001 0011 0001 1111 00012 0010 0101 0010 0110 0010 0011 0010 1111 00103 0011 0110 0011 0101 0011 0011 0011 1111 00114 0100 0111 0100 0100 0100 0011 0100 1111 01005 0101 1000 1011 1011 0101 0011 0101 1111 01016 0110 1001 1100 1010 0110 0011 0110 1111 01107 0111 1010 1101 1001 0111 0011 0111 1111 01118 1000 1011 1110 1000 1000 0011 1000 1111 10009 1001 1100 1111 1111 1001 0011 1001 1111 1001Binary ile BCD nin karsilastirilmasi BCD kodlama ikilik sistemden daha verimsizdir Ornegin 10 10 sayisini gosterebilmek icin BCD de 8 bit gerekirken binary sistemde 4 bit yeterlidir BCD de aritmetik islemler karmasiktir Sayilarin BCD den onluk sisteme onluk sistemden BCD ye cevrimi ikilik sisteme gore daha kolaydir Diger BCD GosterimleriDiger sayi sistemlerinde kullanilabilecek cesitli BCD gosterimleri mevcuttur Bunlardan bazilari su sekildedir Isaretli Gosterimler Isaretli onluk tabandaki sayilar farkli sekillerde ifade edilebilir Ornegin COBOL programlama dil 5 farkli ayrilmis onlu formati icin uygun bir dildir Bu formatlardan her biri sayinin isaretini farkli sekillerde ifade eder Tip Tanim OrnekIsaretsiz Isareti gosteren bit yok F1 F2 u F u 3Standart form Isareti gosteren 4 bit en anlamsiz bayttadir F1 F2 u C u 3Signed leading overpunch Isareti gosteren 4 bit en anlamli bayttadir u C u 1 F2 F3Ayrilmis standart form Isareti gosteren karakter baytlari ya da sondadir F1 F2 F3 u 2B u Signed leading separate Isareti gosteren karakter baytlari ya da bastadir u 2B u F1 F2 F3Telefonlarda BCD TBCD Telephony Binary Coded Decimal BCD kodunda kullanilmayan 6 degerlerle ozel telefon karakterlerinin gosterilmesinde kullanilir Onluk Tabandaki Karakterler BCD 8 4 2 1 1 0 1 0 1 0 1 1a 1 1 0 0b 1 1 0 1c 1 1 1 0Basamak sayisi tek oldugunda 1 1 1 1