Menu
CoddyTech

Operator XOR

Pelajaran 6 dari 17 dalam kursus Manipulasi Bit di Coddy.

Operator XOR ( ^ )

XOR bitwise menerima dua pola bit dengan panjang yang sama. Jika panjangnya tidak sama, tambahkan saja nol di depan MSB pola bit yang lebih pendek. Jika kedua bit pada posisi yang dibandingkan dalam pola bit sama, bit pada pola bit hasilnya adalah 0, jika tidak, nilainya 1. 

Simbol '^' digunakan untuk merepresentasikan operasi XOR. 

Dalam pembahasan matematika, kita menggunakan '⊕' untuk merepresentasikan XOR. Jadi, kamu mungkin juga akan menjumpainya dalam beberapa soal. Sekarang, mari buat tabel untuk melihat nilai yang dihasilkan operator XOR pada semua kombinasi yang mungkin dari dua bit.

x0011
y0101
x ^ y0110

Mari kita lihat sebuah contoh agar operasi ini lebih mudah dipahami:

Pada contoh di atas, kita melakukan operasi XOR pada (11)10 dan (2)10 yang menghasilkan (9)10. Kita cukup menuliskan bilangan-bilangan ini dalam bentuk biner, lalu membandingkan kedua bitnya dan mengikuti definisi operasi XOR di atas.

Penggunaan:

int a = 1;
int b = 0;
>> a ^ b
OUTPUT: 1

Sekarang, XOR memiliki beberapa sifat penting. Jika kamu belum mengetahuinya, sifat-sifat ini akan mempersingkat waktu yang kamu perlukan untuk menyelesaikan soal-soal terkait XOR.

Beberapa sifat penting XOR

  1. x ⊕ 0 = x - Jika kamu melakukan XOR antara suatu bilangan dan nol, hasilnya adalah bilangan yang sama.
  2. x ⊕ x = 0 - Jika kamu melakukan XOR antara suatu bilangan dan dirinya sendiri, hasilnya adalah nol.
  3. Misalkan ada dua bilangan x dan y. Katakanlah x ⊕ y = z. Maka, x ⊕ z = y dan y ⊕ z = x juga merupakan persamaan yang valid.
challenge icon

Tantangan

Sedang

Sean suka memakai kaus kaki dan memiliki berbagai kaus kaki bergaya di lemarinya. Ia menyimpan kaus kakinya dengan angka yang tertulis di atasnya. Contohnya, (1,1) , (10, 10) mewakili dua pasang kaus kaki. Sayangnya, suatu hari seekor kucing masuk ke lemarinya dan membawa kabur satu kaus kaki. Kaus kaki yang ada di lemari diberikan kepadamu sebagai array. Lengkapi fungsi MissingSock untuk mencari tahu kaus kaki mana yang dibawa kabur kucing.

Misalnya,

Lemari awalnya memiliki 6 kaus kaki: 1, 1, 2, 3, 3, 2, 

  • 2 kaus kaki bernomor 1
  • 2 kaus kaki bernomor 2 
  • 2 kaus kaki bernomor 3

Kucing itu datang dan mencuri satu kaus kaki bernomor 1. Input-nya sekarang adalah: 1, 2, 3, 3, 2 karena satu kaus kaki bernomor 1 hilang. Tantangannya adalah menemukan kaus kaki yang hilang itu (output-nya harus 1 karena itulah kaus kaki yang hilang)

Coba sendiri

#include <iostream>
#include <vector>
using namespace std;

int MissingSock(vector<int> socks) {
    // Tulis kodemu di sini
}

Semua pelajaran di Manipulasi Bit

Latihan sendiri: Compiler C++ online

Periksa konversi: Konverter Basis Bilangan