Skip to content

Instantly share code, notes, and snippets.

@rizkytegar
Created September 27, 2023 03:29
Show Gist options
  • Save rizkytegar/a3e660fd9bcc75085a33dbe0597b83cf to your computer and use it in GitHub Desktop.
Save rizkytegar/a3e660fd9bcc75085a33dbe0597b83cf to your computer and use it in GitHub Desktop.

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:

  1. & (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.

  2. | (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.

  3. ^ (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.

  4. ~ (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.

  5. << (Shift kiri) dan >> (Shift kanan): Operasi ini digunakan untuk menggeser bit ke kiri atau ke kanan. Misalnya, x << n akan menggeser bit-bit dalam nilai x sebanyak n 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment