C++ Tutorial

C++ – Operators – Bitwise

Waktu yang dibutuhkan: 30 – 45 menit.

Kali ini kita akan belajar mengenai operator bitwise. Sebelum masuk pada operator bitwise terlebih dahulu kita perlu mengenal representasi biner dari sebuah bilangan bulat.


Binary representation

Selama ini kita mengenal angka dalam representasi desimal yaitu bilangan basis 10. Sekarang kita akan mengenal bilangan dalam basis yang lain, yaitu basis 2 (biner). Nilai dari suatu basis dapat dicari dengan rumus x * basisn dimana x adalah nilai di digit ke-n.

Misalkan angka desimal:

13  =  1 * 101 + 3 * 100 = 10 + 5 = 13.

Jika diterapkan pada bilangan biner (basis 2):

1101 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 8 + 4 + 0 + 1 = 13.

Banyaknya jenis angka di setiap digitnya sama dengan basis itu sendiri. Jangan lupa digitnya dimulai dari 0 sehingga jumlah kombinasi angkanya = basis – 1.

Basis 2: {0, 1}

Basis 10: {0..9}

Metode ini juga dapat digunakan untuk melakukan konversi dari bilangan biner ke desimal.


Bitwise Operator

Operasi biner sebenarnya sangat dekat dengan operasi-operasi pada logika matematika. Nilai 0 dan 1 pada biner sering kali disamakan dengan nilai false untuk 0 dan true untuk 1. Dengan mengetahui hal ini kita dapat lebih mudah membuat truth table untuk operasi-operasi biner yang ada.

Operator bitwise yang ada pada C++:

  1. NOT (~) –> menghasilkan kebalikan dari nilai input, true menjadi false dan sebaliknya.
  2. AND (&) –> menghasilkan nilai true jika kedua input bernilai true, dan menghasilkan false untuk lainnya
  3. OR (|) –> menghasilkan nilai false jika kedua input bernilai false dan menghasilkan true untuk kombinasi lainnya.
  4. XOR (^) –> menghasilkan nilai true jika hanya salah salah satu input bernilai true. XOR biasa disebut exclusive or,  yang mengharuskan hanya salah satu input yang benar. True ^ true = false.

Biasanya kita menggunakan truth table untuk menentukan output dari masing-masing operator. Perhatikan gambar di bawah ini,

Truth table exercise
Truth table exercise

Isilah titik pada gambar tersebut sebagai latihan! Cek jawaban anda dengan kunci jawaban disini.

Contoh penggunaan pada operasi 2 bilangan,

Untuk konversi dari biner ke desimal dan sebaliknya gunakan kalkulator yang ada pada os kalian masing-masing. Jika di windows aktifkan programmer mode pada menu view.

Contoh code pada C++,


Bit Shifts

Akhirnya kita sampai pada subbab terakhir dari tutorial kali ini. Kita akan mengakhiri tutorial ini dengan operasi menggeser bit. Yang dimaksud dengan menggeser bit adalah memindahkan posisi setiap bit dari representasi biner sebuah bilangan ke kiri atau kanan.

Operasi bit shifts yang akan kita pelajari hanya dua terlebih dahulu yaitu shift left (<<) dan shift right (>>). Shift left berarti menggeser bit-bit yang ada ke kiri sebanyak x kali, sedangkan shift left menggeser ke kanan sebanyak x kali, x disini adalah berapa kali kita ingin menggeser bit-bit tersebut.

Contohnya,

Code pada C++,

5 << 1 berarti angka 5 digeser sebanyak 1 kali ke kiri. Jika kita ingin menggeser sebanyak 2 kali maka code nya berubah menjadi 5 << 2. Operasi shift left satu bit ini identik dengan mengalikan bilangan tersebut dengan 2 begitu juga sebaliknya jika shift right satu bit berarti membagi dengan 2.

Cobalah untuk menambahkan operasi shift left dan shift right pada potongan kode diatas. Jangan lupa untuk bereksperimen dengan code yang ada.

Berikutnya kita akan mempelajari control structure dimana tentunya programming akan menjadi lebih seru! Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *