BCD dan Gray Code

Pengkodean Biner Khusus

Pelajari Kode Khusus

Tidak semua representasi biner adalah basis 2 murni. BCD (Binary-Coded Decimal) dan Gray code adalah pengkodean khusus yang memecahkan masalah spesifik dalam sistem digital—dari menampilkan angka di kalkulator hingga membaca rotary encoder tanpa kesalahan.

Binary-Coded Decimal (BCD)

Apa Itu BCD?

BCD merepresentasikan setiap digit desimal sebagai angka biner 4-bit:

DesimalBCDBiner Murni
000000000
501010101
910011001
100001 00001010
420100 0010101010
991001 10011100011

Perbedaan Utama

BCD menggunakan 4 bit per digit desimal; biner murni lebih kompak tetapi lebih sulit ditampilkan.

Mengapa Menggunakan BCD?

Tampilan Desimal Mudah

  • Setiap kelompok 4-bit → satu digit pada display 7-segment
  • Tidak perlu konversi biner-ke-desimal yang kompleks
  • Kalkulator dan meter menggunakan ini

Nilai Desimal Tepat

  • Perhitungan keuangan memerlukan desimal tepat
  • 0,10 tepat dalam BCD, mendekati dalam floating-point biner
  • Menghindari kesalahan pembulatan dalam mata uang

Penyimpanan yang Mudah Dibaca Manusia

  • Timestamp sering disimpan dalam BCD
  • Mudah dibaca dalam hex dump
  • BIOS real-time clock menggunakan BCD

Aritmetika BCD

Tantangan Penjumlahan

Penjumlahan BCD perlu penyesuaian ketika hasil > 9:

  • 0101 + 0100 = 1001 (5 + 4 = 9) ✓ BCD valid
  • 0111 + 0101 = 1100 (7 + 5 = 12) ✗ BCD tidak valid
  • Harus menambahkan 6 (0110) untuk koreksi: 1100 + 0110 = 0001 0010 = 12

Mengapa Menambah 6?

BCD hanya menggunakan nilai 0000-1001 (0-9). Nilai 1010-1111 (10-15) tidak valid. Menambah 6 menghasilkan carry ke digit berikutnya.

Varian BCD

Packed BCD

  • Dua digit per byte
  • Penyimpanan lebih efisien
  • Contoh: 42 = 0100 0010 dalam satu byte

Unpacked BCD

  • Satu digit per byte (4 bit atas tidak digunakan/nol)
  • Pemrosesan lebih mudah
  • Contoh: 42 = 00000100 00000010 (dua byte)

Excess-3 BCD

  • Tambahkan 3 ke setiap digit sebelum dikodekan
  • Menyederhanakan beberapa sirkuit aritmetika
  • 0 = 0011, 9 = 1100

Gray Code

Apa Itu Gray Code?

Gray code adalah urutan biner di mana hanya satu bit yang berubah antara nilai berurutan:

DesimalBinerGray Code
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100

Mengapa Gray Code Penting

Masalah yang Dipecahkan Gray Code

Dalam biner biasa, berpindah dari 7 (0111) ke 8 (1000) mengubah 4 bit secara bersamaan.

  • Jika sensor tidak beralih pada saat yang tepat sama
  • Pembacaan palsu sesaat terjadi
  • Bisa membaca 0000, 0001, 0011, 0111, atau 1111 sebentar

Solusi Gray Code

  • Hanya satu bit berubah pada satu waktu
  • Tidak ada status antara yang ambigu
  • Penting untuk position encoder

Aplikasi Gray Code

Rotary Encoder

  • Sensor posisi motor
  • Knob volume (digital)
  • Sudut sendi robotika
  • Positioning mesin CNC

Minimalisasi Kesalahan

  • Konversi analog-ke-digital
  • Algoritma genetika (crossover)
  • Karnaugh map (minimalisasi logika)

Komunikasi

  • Beberapa kode koreksi kesalahan
  • Skema modulasi tertentu

Mengonversi Biner ke Gray Code

Metode

  1. Pertahankan bit paling signifikan (MSB) tetap sama
  2. XOR setiap bit dengan bit di sebelah kirinya

Contoh: Konversi 1011 (biner) ke Gray

  • MSB: 1 (pertahankan)
  • 1 XOR 0 = 1
  • 0 XOR 1 = 1
  • 1 XOR 1 = 0
  • Hasil: 1110 (Gray)

Rumus

Gray[i] = Binary[i] XOR Binary[i+1]

Gray[MSB] = Binary[MSB]

Mengonversi Gray Code ke Biner

Metode

  1. Pertahankan MSB tetap sama
  2. XOR setiap bit Gray dengan bit Biner sebelumnya

Contoh: Konversi 1110 (Gray) ke Biner

  • MSB: 1 (pertahankan)
  • 1 XOR 1 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • Hasil: 1011 (biner)

Kesimpulan

BCD dan Gray code adalah pengkodean biner khusus yang memecahkan masalah spesifik. BCD menyederhanakan tampilan desimal dan memastikan aritmetika desimal tepat—penting untuk kalkulator dan sistem keuangan. Gray code memastikan hanya satu bit berubah antara nilai berurutan—penting untuk position encoder dan pencegahan kesalahan. Meskipun keduanya tidak seumum biner murni, memahami mereka mengungkapkan bagaimana representasi angka berbeda melayani kebutuhan teknik yang berbeda.

Artikel Terkait

BCD dan Gray Code: Pengkodean Biner Khusus | YounitConverter