BCD’den Onluğa Dönüştürücü

Bir BCD değerini 4 bitlik gruplar halinde ikili olarak girin; onluğa dönüştürün.

Sonuç

125

Nasıl hesaplanır?

Araç, 0 ve 1'lerden oluşan bir dizeyi ikili kodlanmış onluk (BCD) olarak okur; burada her 4 bitlik grup (yarım bayt, nibble) bir ondalık basamaktır. Boşluklar önce silinir, yani grupları ayrı ya da bitişik yazmanın farkı yoktur, ama bit sayısı 4'ün katı olmalıdır. Her nibble kendi başına çevrilir, 8·b₃ + 4·b₂ + 2·b₁ + b₀, ve basamaklar soldan sağa art arda yazılır. 1001'den (9) büyük bir nibble, örneğin 1010 ile 1111 arası, geçerli bir BCD basamağı değildir ve bu durumda araç sonuç vermez. Baştaki sıfır basamaklar atılır, tamamı sıfır olan girdi 0 gösterir. Yalnızca işaretsiz tam sayılar işlenir: işaret nibble'ı ya da ondalık nokta yoktur. BCD sıradan ikili değildir: ondalık basamaklar hiçbir zaman 100 ya da 10 gibi basamak değerleriyle toplanmaz.

Örnek hesaplama

0001 0010 0101 değerini çözelim. Adım 1: nibble'lara bölün; bunlar 0001, 0010 ve 0101'dir. Adım 2: her birini ayrı çevirin. 0001 değeri 1, 0010 değeri 2, 0101 değeri 5'tir. Adım 3: basamakları sırayla yazın, 1, 2, 5. Onluk sonuç 125 olur. Sıradan ikilide 125, 1111101 olarak yazılırdı; bu, yukarıdaki 12 bitlik BCD düzeninden oldukça farklıdır.

Bu örneği dene →

Sık yapılan hatalar

  • Dizenin tamamını tek bir sıradan ikili sayı olarak okumak. 000100100101 düz ikili olarak 293'tür, BCD olarak ise 125; önemli olan 4 bitlik gruplamadır.
  • Bit sayısını 4'ün katı yapmamak. 010 ya da 10010 gibi bir değer sonuç vermez; ilk nibble'ı doldurmak için soldan sıfır ekleyin.
  • 1001'den büyük nibble kullanmak. 1010 ile 1111 düzenleri BCD'de yoktur; bu yüzden 1010 0001 değeri 101 diye okunmaz, reddedilir.
  • BCD alanına 47 gibi onluk ya da onaltılık sayı girmek. Yalnızca 0 ve 1 kabul edilir; 47 sayısını 0100 0111 olarak yazın.
  • İşaret ya da kesir çözülmesini beklemek. Bazı BCD biçimleri işaret nibble'ı ya da ondalık nokta konumu ekler, ancak bu araç her nibble'ı pozitif bir tam sayının basamağı sayar.

Bu hesaplama hakkında

Bu dönüştürücü, her bir ondalık basamağın (0–9) tüm sayıyı saf ikiliye çevirmek yerine kendi 4 bitlik ikili grubunda saklandığı bir kodlama olan ikili kodlanmış onluğu (BCD) çözer — örneğin ondalık 47, saf ikili 101111 olarak değil, iki yarım bayt (nibble) olarak 0100 (4) ve 0111 (7) şeklinde saklanır.

BCD, bir miktar depolama verimliliğinden ödün verir (4 bit 15'e kadar temsil edebilirken yalnızca 0–9 kullanılır) ama karşılığında hiçbir yuvarlama veya dönüşüm hatası olmadan basamak basamak anında ondalığa çevrilme yeteneği kazandırır — dijital saatlerde, hesap makinelerinde, yedi segmentli göstergelerde ve tam ondalık gösterimin önemli olduğu finans/muhasebe donanımlarında uzun süredir tercih edilmesinin nedeni de tam olarak budur.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Bir veri sayfasından ya da hata ayıklayıcıdan gelen BCD değerini denetlemenin kolay yolu, baytı onaltılık yazıp rakamları olduğu gibi okumaktır; çünkü her onaltılık rakam bir dörtlü gruba karşılık gelir. 0101 1001 baytı onaltılık olarak 59'dur ve burada da 59 çıkar. Gerçek zaman saati yongaları saniye, dakika ve saati çoğunlukla bu biçimde saklar; bu yüzden 0010 0011 yazmaç değeri 23 demektir. Hangi cihazı ya da protokolü çözüyorsunuz, işaret dörtlüsü kullanıyor mu?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar