Operator Bitwise
Operator bitwise digunakan ketika hendak melakukan operasi pada level bit. Operator bitwise yang diakomodir oleh bahasa C adalah sebagai berikut :
- Contoh Operator Bitwise AND
Pada program di atas variabel a diisi dengan 21 yang jika dikonversikan menjadi bilangan biner = 00010101, variabel b = 32 = 00100000 biner, variabel c = 15 = 00001111 biner dan variabel d = 25 = 00011001 biner.
Di baris ke-5 terdapat ekspresi a&b, artinya 00010101 & 00100000 menghasilkan 00000000 yang jika dikonversikan ke bilangan desimal hasilnya adalah 0
Di baris ke-6 terdapat ekspresi c&d, artinya 00001111&00011001 menghasilkan 00001001 yang jika dikonversikan ke bilangan desimal hasilnya adalah 9
- Contoh Operator Bitwise OR
Di baris ke-5 terdapat ekspresi a|b, artinya 00010101 | 00100000 menghasilkan 00110101 yang jika dikonversikan ke bilangan desimal hasilnya adalah 53
Di baris ke-6 terdapat ekspresi c|d, artinya 00001111 | 00011001 menghasilkan 00011111 yang jika dikonversikan ke bilangan desimal hasilnya adalah 31
- Contoh Operator Bitwise XOR
Di baris ke-5 terdapat ekspresi a^b, artinya 00010101 ^00100000 menghasilkan 00110101 yang jika dikonversikan ke bilangan desimal hasilnya adalah 53
Di baris ke-6 terdapat ekspresi c^d, artinya 00001111 ^ 00011001 menghasilkan 00010110 yang jika dikonversikan ke bilangan desimal hasilnya adalah 22
- Contoh Operator Bitwise Complement
Untuk memahami cara kerja operator bitwise complement, harus dipahami dulu tentang second complement. Komplemen untuk sebuah bilangan N adalah ~N. 2′ complement dari ~N = -(~(~(N)+1) = -(N+1)
Di baris ke-5 terdapat ekspresi ~a artinya ~00010101 = -(00010101+1) = – 00010110 yang jika dikonversikan ke bilangan desimal hasilnya adalah -22
Di baris ke-6 terdapat ekspresi ~b artinya ~ 00100000 = -(00100000+1)= -00100001 yang jika dikonversikan ke bilangan desimal hasilnya adalah -33
- Contoh Operator Bitwise Shift Left (Geser Kiri)
Pada baris ke-5 a=21 = 00010101 biner digeser ke kiri sebanyak 1 langkah sehingga menjadi 00101010 yang jika dikonversikan ke bilangan desimal hasilnya adalah 42
Pada baris ke-6, a=21 = 00010101 biner digeser ke kiri sebanyak 2 langkah sehingga menjadi 01010100 yang jika dikonversikan ke bilangan desimal hasilnya adalah 84
Pada baris ke-7, a=21=00010101 biner, digeser ke kiri sebanyak 6 langkah sehingga menjadi 10101000000, yang jika dikonversikan ke bilangan desimal hasilnya adalah 1344
- Contoh Operator Bitwise Shift Right
Pada baris ke-5, a=21=00010101 biner digeser ke kanan 1 langkah akan menghasilkan 00001010 biner, jika dikonversikan ke bilangan desimal hasilnya adalah 10
Pada baris ke-6, a=21=00010101 biner digeser ke kanan 3 langkah akan menghasilkan 00000010 biner, jika dikonversikan ke bilangan desimal hasilnya adalah 2
Pada baris ke-7, a=21=00010101 biner digeser ke kanan 5 langkah akan menghasilkan 00000000 biner, jika dikonversikan ke bilangan desimal hasilnya adalah 0
Demikian tentang operator bitwise, semoga bermanfaat.
Referensi :
- Diktat Teknik Pemrograman Mikroprosesor dan Mikrokontroler Semester Ganjil TP 2019-2020
- https://www.tutorialspoint.com/cprogramming/c_bitwise_operators.htm
- https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp/
- https://fresh2refresh.com/c-programming/c-operators-expressions/c-bit-wise-operators/
- https://www.programiz.com/c-programming/bitwise-operators