Mahir Arduino Sketch dan Elektro secara praktek

Bitwise Operators

Bitwise operator melakukan perhitungan pada level bit. ada 6 bitwise operator, yaitu:


  • & bitwise and
  • | bitwise or
  • ^ bitwise xor
  • ~ bitwise not
  • << bitshift left
  • >> bitshift right


Bitwise operators hanya bisa digunakan antara variable integer. Setiap operator melakukan perhitungan berdasar aturan operasi logik.

Bitwise AND (&)
Aturannya: jika kedua input bernilai 1, outputnya akan bernilai 1, selain itu hasilnya 0. Contoh:

0 0 1 1
0 1 0 1
______ &
0 0 0 1

Integer berukuran 16 bit, jadi saat menggunakan operasi & akan terdapat 16 kali operasi perhitungan. Contoh:
int x = 77; //binary: 0000000001001101
int y = 121; //binary: 0000000001111001
int z = x & y;//result: 0000000001001001
In this case 77 & 121 = 73


Bitwise OR (|)
Jika salah satu input atau keduanya bernilai 1, akan menghasilkan 1, selain itu hasilnya 0
0 0 1 1
0 1 0 1
______ |
0 1 1 1

Bitwise XOR (^)
Jika hanya salah satu input bernilai 1, akan menghasilkan 1, jika kedua input bernilai 1 atau 0 , akan menghasilkan 0
0 0 1 1
0 1 0 1
______ ^
0 1 1 0

Bitwise NOT (~)
Bitwise NOT digunakan untuk single operand saja. Hasilnya adalah lawan dari nilai yang sekarang, 1 akan menjadi 0 dan 0 akan menjadi 1.
0 0 1 1
______ ~
1 1 0 0

Bitshift Left (<<), Bitshift Right (>>)
Bitshift operators menggeser seluruh bits pada integer ke kiri atau ke kanan. Banyaknya pergeseran sesuai nilai dikanan operator.

variable << number_of_bits

Contoh:
byte x = 9 ; // binary: 00001001
byte y = x << 3; // binary: 01001000 (or 72 dec)

Bits yang digeser hingga akhir baris akan hilang. Umumnya left bitshift digunakan untuk perkalian. Right bitshift digunakan membagi angkat.

1 comment:

  1. mohon maaf mas mau tanya terkait pergeseran bilangan biner, sayakan lagi belajar tentang pergeseran nilai biner di arduino ide. kenapa ya mas untuk pergeseran nilai biner secara manual dan di sistem tidak sesuai ? mohon arahanya mas

    ReplyDelete