Bitwise merupakan operasi yang dilakukan pada level bit (bit-level) terhadap nilai-nilai dalam bahasa pemrograman C++. Operasi bitwise memungkinkan Anda untuk melakukan manipulasi bit individu dalam data yang disimpan dalam tipe data seperti integer. Terdapat beberapa operator bitwise yang umum digunakan dalam C++, yaitu:
-
&
(AND bitwise): Operasi ini menggabungkan dua bilangan dengan mengambil setiap bit dan melakukan operasi AND pada bit-bit yang sesuai. Hasilnya adalah 1 jika kedua bit adalah 1, dan 0 jika salah satu atau kedua bit adalah 0. -
|
(OR bitwise): Operasi ini menggabungkan dua bilangan dengan melakukan operasi OR pada bit-bit yang sesuai. Hasilnya adalah 1 jika salah satu atau kedua bit adalah 1, dan 0 jika keduanya adalah 0. -
^
(XOR bitwise): Operasi ini menggabungkan dua bilangan dengan melakukan operasi XOR (exclusive OR) pada bit-bit yang sesuai. Hasilnya adalah 1 jika hanya satu dari dua bit adalah 1, dan 0 jika keduanya adalah 0 atau 1. -
~
(NOT bitwise): Operasi ini mengambil bilangan tunggal dan melakukan operasi NOT pada setiap bitnya. Hasilnya adalah bit-bit yang di-flip, yaitu 0 menjadi 1 dan sebaliknya. -
<<
(Shift kiri) dan>>
(Shift kanan): Operasi ini digunakan untuk menggeser bit ke kiri atau ke kanan. Misalnya,x << n
akan menggeser bit-bit dalam nilaix
sebanyakn
posisi ke kiri.
Contoh Studi Kasus: Mari kita lihat contoh penggunaan bitwise dalam sebuah studi kasus yang sederhana: mengatur dan membaca status dari beberapa perangkat dalam sistem.
#include <iostream>
// Definisikan konstanta untuk status perangkat
const unsigned int DEVICE1 = 1; // 0001
const unsigned int DEVICE2 = 2; // 0010
const unsigned int DEVICE3 = 4; // 0100
const unsigned int DEVICE4 = 8; // 1000
int main() {
unsigned int status = 0; // Inisialisasi status awal
// Nyalakan perangkat 1 dan 3
status |= DEVICE1; // Menggunakan operator OR bitwise
status |= DEVICE3;
// Periksa apakah perangkat 2 aktif
if (status & DEVICE2) { // Menggunakan operator AND bitwise
std::cout << "Perangkat 2 aktif." << std::endl;
} else {
std::cout << "Perangkat 2 tidak aktif." << std::endl;
}
// Matikan perangkat 3
status &= ~DEVICE3; // Menggunakan operator AND dan NOT bitwise
// Periksa apakah perangkat 3 mati
if (!(status & DEVICE3)) { // Menggunakan operator AND dan NOT bitwise
std::cout << "Perangkat 3 dimatikan." << std::endl;
} else {
std::cout << "Perangkat 3 masih aktif." << std::endl;
}
return 0;
}
Dalam contoh ini, kita menggunakan operasi bitwise untuk mengatur dan membaca status perangkat dalam sistem dengan memanipulasi bit-bit dalam variabel status
. Operasi OR, AND, dan NOT bitwise digunakan untuk mengatur dan memeriksa status perangkat secara individu.