Sistem bilangan & representasi integer
Biner, oktal, heksadesimal, konversi antar basis, serta sign-magnitude, one's complement, dan two's complement.
Komputer menyimpan semua data sebagai bit 0 dan 1. Untuk membaca dan menulisnya dengan nyaman, kita memakai beberapa basis:
| Basis | Digit | Contoh | Kegunaan |
|---|---|---|---|
| 2 (biner) | 0–1 | 0b101101 | representasi asli di hardware |
| 8 (oktal) | 0–7 | 0o55 | permission Unix (chmod 755) |
| 10 (desimal) | 0–9 | 45 | manusia |
| 16 (heksadesimal) | 0–9, A–F | 0x2D | alamat memori, warna #2F5BEA |
Nilai sebuah bilangan basis dengan digit adalah . Contohnya .
Trik konversi cepat
- Biner ↔ heksa: kelompokkan 4 bit dari kanan.
0010 1101→2 D. - Biner ↔ oktal: kelompokkan 3 bit dari kanan.
101 101→5 5. - Desimal → biner: bagi 2 berulang, baca sisanya dari bawah ke atas (buka bagian “Cara manual” di widget).
Bilangan negatif
Dengan bit ada tiga cara klasik menyimpan bilangan bertanda:
| Representasi | −5 dalam 8 bit | Rentang 8 bit | Catatan |
|---|---|---|---|
| Sign-magnitude | 1000 0101 | −127 … 127 | ada +0 dan −0 |
| One’s complement | 1111 1010 | −127 … 127 | balik semua bit; juga ada dua nol |
| Two’s complement | 1111 1011 | −128 … 127 | balik semua bit lalu +1; satu nol |
Hampir semua CPU modern memakai two’s complement, karena penjumlahan dan pengurangan bisa memakai rangkaian adder
yang sama persis dengan bilangan tak bertanda. Cara melihatnya: bit paling kiri berbobot , bit lainnya
berbobot positif seperti biasa. 1111 1011 = .
Sign extension
Untuk memperlebar bilangan two’s complement (misalnya 8 bit menjadi 16 bit), salin bit tanda ke bit-bit baru.
1111 1011 (−5) menjadi 1111 1111 1111 1011, tetap −5. Coba di widget: atur −5, lalu ganti antara 8 dan 16 bit.