2's Complement Untuk Menuliskan Bilangan Bernilai Negatif


2's complement merupakan skema yang dibuat untuk menampilkan bilangan negatif dalam sistem bilangan biner. Misal kita mempunyai persoalan matematis dalam bilangan desimal sebagai berikut :

20 - 45 = ?

kemudian kita diminta untuk menunjukkan prosesnya menggunakan sistem bilangan biner.

Untuk mempermudah, persoalan tersebut dapat kita tuliskan kembali sebagai berikut :

20 + (-45) = ?

Untuk menuliskan -45 [negatif (minus) empat puluh lima] kita dapat menggunakan 2's complement.
Berikut ini langkah-langkahnya :
  1. tuliskan biner dari 45
    0 0 1 0   1 1 0 1
  2. invert atau tukar nilai tiap bit dari bilangan di atas, 0 dengan 1 dan 1 dengan 0, sehingga menjadi
    1 1 0 1   0 0 1 0
  3. tambahkan 1 pada bit ke-0, sehingga menjadi
    1 1 0 1   0 0 1 1
  4. bilangan biner  1 1 0 1   0 0 1 1 merupakan biner untuk -45 
Setelah mendapatkan biner untuk nilai -45, langkah selanjutnya untuk menyelesaikan persoalan di atas adalah tinggal menambahkan biner untuk 20 dengan biner untuk -45.

(20)10 = 0 0 0 1   0 1 0 0
(-45)10 = 1 1 0 1   0 0 1 1

+
(-25)10 = 1 1 1 0   0 1 1 1

Sekarang kita perhatikan hasil yang didapatkan, benarkah jawabannya?
Untuk bilangan desimalnya, memang benar bahwa
20 - 45 = 20 + (-45) = -25

Bagaimana dengan yang biner?
Kita mendapatkan 1 1 1 0   0 1 1 1 sebagai hasil dari persoalan tersebut.
Jika kita langsung ubah ke dalam bilangan desimal, kita akan mendapatkan nilai 231.
Wah., salah dong?

Tunggu dulu, biner 1 1 1 0   0 1 1 1 bukan merupakan jawaban akhir dari persoalan tersebut. Untuk mendapatkan nilai biner yang sesungguhnya, kita harus melakukan de-2's complement.
Caranya gampang, tinggal balik aja langkah-langkah untuk 2's complement tadi.
1 1 1 0   0 1 1 1 « kita kurangi bit ke-0 dengan 1, menjadi
1 1 1 0   0 1 1 0 « kita invert nilai tiap bitnya, menjadi
0 0 0 1   1 0 0 1 « inilah hasilnya

0 0 0 1   1 0 0 1 = (25)10
Lho., kok gak sama? Kan jawabannya (-25)10, bukan (25)10?

Hayoo., ada yang mau jawab?
Boleh jawab di kotak komentar...
:D

2 comments:

  1. yang di atas salah mas :D

    karena -45 maka yang digunakan adalah 6 bit saja, merujuk pada 64 (2 pangkat 6)
    kalo pake 8 bit, malah hasilnya salah dan cenderung geje :D

    BalasHapus
    Balasan
    1. oh., gitu ya?
      jadi jumlah bitnya pakai yang cukup tapi paling dekat, gak boleh berlebihan..
      thank you..

      :D

      Hapus