Memahami Angka Negatif dalam Biner: Sign-Magnitude, Komplement, dan Two’s Complement
Pengurangan dapat diubah menjadi penjumlahan dengan memperlakukan subtrahend sebagai nilai negatif; contohnya, 7 − 5 menjadi 7 + (−5).
Setelah representasi biner positif dikuasai, langkah selanjutnya adalah mengkodekan angka negatif sehingga pengurangan dapat dilakukan menggunakan rutinitas penjumlahan yang sama.
Dalam desimal, tanda minus mendahului digit paling signifikan (misalnya, −5). Dalam perangkat keras biner, kita hanya memiliki dua keadaan—tinggi atau rendah—jadi kita harus mengkodekan tanda dalam pola bit itu sendiri.
Dalam konteks ini, kita tidak memiliki simbol ketiga seperti tanda "minus". Salah satu solusi adalah menyisihkan bit yang mewakili tanda matematis:

Menggunakan bit untuk tujuan di luar bobot posisionalnya dapat menyebabkan kebingungan; contohnya, 1101₂ mungkin dibaca sebagai tiga belas kecuali bit leading diperlakukan sebagai tanda.
Pertama, tentukan lebar bit total yang diperlukan untuk menampung magnitudo terbesar, lalu pastikan semua operasi tetap dalam lebar itu.
Dalam contoh di bawah ini, kami membatasi rentang dari −7 (1111₂) hingga +7 (0111₂) dengan memperlakukan bit paling signifikan sebagai tanda, sehingga mencegah salah interpretasi.
Mengkodekan −5 sebagai 1101₂ mengilustrasikan sistem sign-magnitude, di mana bit leading menunjukkan tanda daripada nilai, menggantikan keurnian posisional untuk praktikalitas.
Bit paling signifikan menunjukkan tanda; sisa bit mempertahankan nilai posisional standar (kuasa dua).
Komplementasi
Sementara sign-magnitude konseptual sederhana, itu menyulitkan penjumlahan biner. Bagaimana cara menambahkan −5 (1101₂) ke angka lain menggunakan penjumlahan biasa?
Menciptakan algoritma penjumlahan kustom meniadakan tujuannya; itu setara dengan pengurangan manual, menghilangkan manfaat komputasi apa pun.
Alternatif—komplementasi—memungkinkan angka negatif ditambahkan menggunakan metode penjumlahan biner standar dan selaras secara alami dengan bobot posisional.
Dalam skema ini, bit paling signifikan masih membatasi rentang tetapi sekarang membawa bobot tempat negatif (misalnya, −8). Contohnya, −5 dikodekan sebagai berikut:

Dengan tiga bit kanan yang dapat mewakili magnitudo dari 0 hingga 7, dan bit paling kiri yang mewakili 0 atau −8, kita dapat mewakili bilangan bulat dari −7 (1001₂ = −8 + 1 = −7) hingga +7 (0111₂ = 0 + 7 = 7).
Nilai positif tetap tidak berubah, tetapi nilai negatif memerlukan operasi komplement.

Angka biner negatif di kolom kanan adalah jumlah tiga bit kanan plus delapan negatif dari bit paling kiri, jadi mereka tidak mengikuti progresi yang sama dengan angka positif.
Alih-alih, tiga bit kanan harus disetel sehingga, saat ditambahkan ke bobot tempat delapan negatif, menghasilkan total negatif yang diinginkan.
Two’s Complement
Tiga bit kanan adalah two’s complement dari kontrapart positifnya. Contohnya:

Dengan bit bobot negatif sebagai bit keempat (−8), two’s complement untuk bilangan positif apa pun adalah nilai yang perlu ditambahkan ke −8 untuk mendapatkan setara negatif dari bilangan itu.
Menghitung two’s complement sederhana: balik semua bit (one’s complement) dan tambahkan satu. Contohnya, untuk mendapatkan two’s complement dari lima (101₂), pertama-tama balik menjadi 010₂, lalu tambahkan satu untuk mendapatkan 011₂, yang mewakili −5 dalam two’s complement tiga-bit.
Menghasilkan two’s complement bekerja sama jika Anda memanipulasi semua bit, termasuk bit paling signifikan, sekaligus. Contohnya, mengonversi 0101₂ (lima) menjadi negatif lima:
Balik semua bit → 1010₂; tambahkan satu → 1011₂, mewakili −5 dalam two’s complement empat-bit.
Penting agar posisi bit bobot negatif tetap ditetapkan sebelum melakukan konversi two’s complement apa pun. Jika bit kedelapan adalah bit bobot negatif (10000000₂), two’s complement dari 0000101₂ akan menjadi 1111011₂, mewakili −5 dalam two’s complement delapan-bit.
Oleh karena itu, dalam sistem delapan-bit, +5 adalah 00000101₂ dan −5 adalah 11111011₂.
LEMBAR KERJA TERKAIT:
- Lembar Kerja Matematika Biner