| Sayı Sistemleri Serisi | ||
| İkili Sayı Sistemi | İşaretli İkili Sayılar | İkili Kesirler |
| İkili – Onluk Dönüşümü | İkili Kodlanmış Onluk Sayılar (BCD) | |
| On Altılı Sayı Sistemi | Sekizli Sayı Sistemi |
İkili Kodlanmış Onluk sayılar (Binary Coded Decimal veya BCD), onluk (decimal) sayıları dijital sistemlerde ikili formda temsil etmek ve dönüştürmek için kullanılan özel bir numaralandırma işlemidir.
İkili sayılar serisindeki önceki eğitimlerimizde gördüğümüz gibi, dijital elektronik devrelerde ve bilgisayar sistemlerinde kullanılan, her birinin kendine özgü bir amacı olan birçok farklı ikili kodlama yöntemi vardır.
Doğal olarak ondalık (taban-10) bir dünyada yaşadığımız için, kullandığımız bu ondalık sayıları bilgisayarların, mikrodenetleyicilerin ve dijital elektronik cihazların anlayabileceği bir ikili (taban-2) ortama dönüştürmenin verimli bir yoluna ihtiyacımız vardır. İşte İkili Kodlanmış Onluk Sayılar kodlama sistemi bu işlemi kolaylaştırmamızı sağlar.
Daha önce,
-bitlik bir ikili kodun, 1’ler ve 0’lardan oluşan
farklı kombinasyon üretebilen bir bit grubu olduğunu öğrenmiştik. BCD sisteminin avantajı, her bir ondalık basamağın, tıpkı On Altılı (Hexadecimal) sayı sisteminde olduğu gibi 4 bitlik (nibble) bir ikili grup ile temsil edilmesidir. Yani, 10 farklı ondalık rakamı (0’dan 9’a kadar) temsil edebilmek için 4-bitlik bir ikili koda ihtiyacımız vardır.
Ancak burada dikkat edilmesi gereken önemli bir nokta vardır: İkili Kodlanmış Onluk sayılar ile On Altılı (Hexadecimal) sayılar aynı şey değildir. 4 bitlik bir on altılı sayı,
(
, yani ondalık
) değerine kadar geçerliyken, BCD sayılar en büyük ondalık rakam olan 9’da, yani
‘de durur. Dört ikili basamak kullanılarak toplam 16 (
) farklı kombinasyon üretilebilmesine rağmen, BCD numaralandırma sisteminde geriye kalan altı kombinasyon yasaklıdır. Bu kullanılmayan veya yasaklı sayılar şunlardır:
(10),
(11),
(12),
(13),
(14) ve
(15).
BCD sisteminin en büyük avantajı, onluk (taban-10) ile ikili (taban-2) format arasındaki dönüşümlerin insan donanım arayüzlerinde (ekranlar, tuş takımları vb.) çok hızlı ve kolay yapılabilmesidir. Temel dezavantajı ise,
ile
arasındaki 6 adet 4-bitlik kombinasyon kullanılmadığı için bellek (hafıza) ve veri iletimi açısından standart ikili sisteme göre israf yaratmasıdır. Yine de, BCD kodlama sistemi özellikle 7-segment dijital göstergeler kullanan birçok önemli uygulamada tercih edilir. İkili kodlanmış sayılar hakkında daha fazla bilgi edinmek isterseniz BCD Vikipedi sayfasına göz atabilirsiniz.
BCD numaralandırma sisteminde, bütün bir ondalık sayı tek bir ikili sayıya dönüştürülmez. Bunun yerine, sayı içindeki her bir ondalık rakam dört bite ayrılır. Her ondalık basamak, rakamın ağırlıklı ikili değerine doğrudan çevrilerek temsil edilir.
Örneğin, ondalık sistemdeki
sayısı, BCD formunda şu şekilde ayrıştırılarak gösterilir:
![]()
Buradan BCD’nin ağırlıklı bir kodlama kullandığını net bir şekilde görebiliriz. Çünkü her 4 bitlik grubun içindeki ikili bitler, nihai değerin belirli bir ağırlığını temsil eder. BCD kodunda kullanılan ağırlıklar sırasıyla 8, 4, 2 ve 1’dir. Bu nedenle BCD kodlaması, ondalık basamakların 4 bitlik karşılıklarını ifade ederken endüstride yaygın olarak 8421 kodu olarak adlandırılır.
BCD İkili Ağırlıkları
| İkili Üst Değer (Kuvvet) | ||||
| İkili Ağırlık | 8 | 4 | 2 | 1 |
Ondalık sayılarda sola doğru ilerledikçe her basamağın ağırlığı 10 kat artar. BCD sayı sisteminde de, bir basamağı oluşturan her bir ikili bitin ağırlığı sağdan sola doğru 2 kat artar. Yani ilk (en sağdaki) bit
(
), ikinci bit
(
), üçüncü bit
(
) ve dördüncü (en soldaki) bit
(
) ağırlığına sahiptir.
Ondalık rakamlar (0-9) ile bunların ağırlıklı 8421 BCD karşılıkları arasındaki ilişki aşağıdaki tabloda verilmiştir.
Ondalık – BCD Dönüşüm Tablosu
| Ondalık (Decimal) Sayı | BCD (8421) Kodu |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 (1 ve 0) | 0001 0000 |
| 11 (1 ve 1) | 0001 0001 |
| 12 (1 ve 2) | 0001 0010 |
Tablodan da anlaşılabileceği gibi 8421 BCD kodu, her ondalık rakamın 4-bitlik (nibble) saf ikili karşılığı olarak yan yana dizilmesinden başka bir şey değildir.
Onluk Sayıdan BCD’ye Dönüşüm
Ondalık (decimal) bir sayının İkili Kodlanmış Onluk (BCD) sayıya dönüştürülmesi oldukça kolay bir işlemdir. İlk olarak, ondalık sayı rakamlarına ayrıştırılır. Ardından yukarıdaki dönüşüm tablosunu veya 8421 ağırlık kuralını kullanarak her bir rakamı temsil eden eşdeğer 4-bit BCD kodu yazılır.
BCD Dönüşüm Örneği – 1
Yukarıdaki tabloyu kullanarak sırasıyla
,
ve
ondalık sayılarını 8421 BCD eşdeğerlerine dönüştürelim.
Bu dönüşüm sonucunda elde edilen ikili sayının, standart onluk-ikili taban dönüştürmesi (sürekli ikiye bölme) yöntemiyle elde edilen sonuçla aynı olmadığına dikkat edin. BCD, sayının bütün değerini değil, rakamların tek tek çevrilmiş halini temsil eder.
İkili Kodlanmış Onluk Sayılardan Onluk Sayıya Dönüşüm
İkili kodlanmış ondalık sayıdan (BCD), tekrar standart ondalık formata dönüşüm işlemi yukarıdaki işlemin tam tersidir. BCD ikili dizisi, en sağdaki bitten (LSB) başlanarak 4 bitlik gruplara (nibble) ayrılır. Daha sonra her bir 4-bitlik grubun ondalık karşılığı yazılarak sayı birleştirilir. En solda kalan bit sayısı 4’e tamamlanamıyorsa, dizinin başına sıfırlar eklenerek 4-bitlik bloklar tamamlanabilir.
BCD Dönüşüm Örneği – 2
Aşağıdaki ikili (BCD) dizileri ondalık eşdeğerlerine dönüştürelim:
,
,
ve ondalıklı bir dizi olan
.

Ondalık değeri
‘dur ve geçerli bir BCD sayısı olmadığı için hata üretir. BCD sisteminde
‘den büyük rakamlar (A, B, C, D, E, F) kullanılamaz.
(Başına sıfır eklenerek 4-bitlik iki grup yapıldı.)
Burada virgülden sonraki son grup
ondalık 10’a karşılık geldiğinden hata oluşturur. Doğru bir senaryoda eğer BCD olsaydı (Örneğin
) kesirli kısımlar olarak okunabilirdi.
BCD sayılarının ondalık sayılara çevrilmesi basittir ancak şunu unutmamak gerekir: BCD formunda yazılmış bir veri, 1’ler ve 0’lardan oluşmasına rağmen aslında salt bir “ikili sayı” değildir; ondalık sistemdeki rakamların dijital gösterimidir. Çoğu insan-makine arayüzü (HMI) ve dijital ekranın onluk tabanda çalışması gerektiği için, bilgisayarlar veriyi bu formata dönüştürerek ekrana yansıtırlar.
BCD Sisteminin Bellek Verimsizliği
BCD kodlama işleminin ve çözümlemesinin kolay olmasına karşın, sayıları bellekte depolamak için verimli bir yöntem değildir. Belirli bir sayıyı BCD formatında saklamak, standart ikili sistemde (saf binary) saklamaya kıyasla her zaman daha fazla bit veya bellek alanı gerektirir.
Örneğin, 0’dan 999’a kadar üç basamaklı bir ondalık sayıyı ikili sistemde (binary) ifade etmek için yalnızca 10 bit (
) yeterliyken, aynı sayıyı BCD formatında saklamak için en az 12 bit (
) kullanmak zorundayız. Bellek boyutlarının kısıtlı olduğu gömülü sistemlerde bu ciddi bir dezavantajdır.
Buna ek olarak, BCD formundaki sayılar üzerinde doğrudan matematiksel işlem (toplama, çıkarma) yapmak karmaşıktır. Çünkü iki sayıyı topladığınızda, sonuç
‘u (
) geçerse elde edilen değer artık geçersiz bir BCD basamağı (örn:
) olur. Bu hatayı düzeltmek için sonuca ekstra algoritmik düzeltme (genellikle
veya
eklenmesi işlemi) uygulanmalıdır. Bu sebeple bilgisayarlar genellikle matematiksel işlemleri doğrudan “saf ikili” formda yapar, sonucu ekranda gösterecekleri zaman BCD formatına çevirirler.
BCD Entegre Devreleri (7-Segment Gösterge Sürücüleri)
BCD kodlama sisteminin en yaygın ve en kullanışlı olduğu alan, dijital değerlerin 7-Segment (Yedi Bölütlü) LED veya LCD ekranlarda gösterilmesidir. Piyasada doğrudan BCD girişlerini okuyup ekranı sürecek şekilde tasarlanmış çok sayıda popüler entegre devre (IC) bulunmaktadır.
Örneğin sayıcı (counter) devrelerinde kullanılan 74LS90 asenkron sayaç entegresi, bağımsız 2’ye ve 5’e bölme sayaçları içererek 10’a kadar sayabilir ve doğrudan BCD çıkış üretir. Bunun çift versiyonu olan 74LS390 entegresi de benzer şekilde BCD formatında veri çıkışı sağlar.
En yaygın kullanılan donanımlardan bir diğeri ise BCD girişini doğrudan 7-Segment ekrana çeviren Decoder/Driver (Kod Çözücü/Sürücü) entegreleridir. Sayıcıdan (örneğin 74LS90’dan) gelen 4 bitlik BCD kodunu alır ve 7-segment LED ekranın hangi LED çubuklarının yanması gerektiğini belirleyerek sürüş işlemi yapar. 74LS47, ortak anot (common-anode) ekranları sürmek için aktif-düşük (active-low) çıkışlara sahipken, 74LS48 ortak katot (common-cathode) ekranları sürmek için aktif-yüksek (active-high) çıkışlar kullanır.

Özetle İkili Kodlanmış Onluk Sayılar
İkili Kodlanmış Onluk Sayılar, ondalık sayının içindeki her bir rakamın (0’dan 9’a kadar) bağımsız olarak 4-bitlik (bir nibble) ikili eşdeğeriyle temsil edildiği bir dijital kodlama tekniğidir.
Bu sistemde, 0’dan 9’a kadar tek haneli bir sayıyı göstermek için 4 bit (bir nibble) yeterlidir. İki basamaklı (0-99) sayılar için 8 bit (bir bayt), üç basamaklı (0-999) sayılar için 12 bit alan gerekir. Tek bir 8-bitlik (1 bayt) alanın iki ondalık rakamı (00 – 99) yan yana saklayabilmesi durumuna veri sıkıştırma terminolojisinde Paketlenmiş BCD (Packed BCD) adı verilir.
BCD kodu, her bit pozisyonunun belirli bir değere sahip olmasından dolayı ağırlıklı 8421 kodu olarak bilinir. En anlamlı bitten (MSB) en az anlamlı bite (LSB) doğru her bitin ağırlığı sırasıyla
,
,
ve
‘dir.
İkili Kodlanmış Onluk (BCD) sisteminin en büyük avantajı, elektronik cihazların hesapladığı değerlerin insanlar tarafından okunabilmesi için onluk sisteme çevrilmesinin çok hızlı ve basit olmasıdır. Ancak geriye kalan 4 bitlik altı kombinasyon (10, 11, 12, 13, 14, 15) kullanılmadığı için bellek kapasitesi açısından saf ikili (pure binary) sisteme göre israf oluşturur. Buna rağmen BCD formatı, özellikle dijital göstergeler (saatler, hesap makineleri, endüstriyel paneller vb.) ve HMI arayüzlerinde yaygın bir şekilde standart olarak kullanılmaya devam etmektedir.
| Sayı Sistemleri Serisi | ||
| İkili Sayı Sistemi | İşaretli İkili Sayılar | İkili Kesirler |
| İkili – Onluk Dönüşümü | İkili Kodlanmış Onluk Sayılar (BCD) | |
| On Altılı Sayı Sistemi | Sekizli Sayı Sistemi |
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.
