Operator Logik Untuk Manipulasi Bit Pada C++


Operator logik yang dipakai dalam C++ adalah :

Simbol

Operasi

&

AND

|

OR

^

Exclusive OR

<<

Shift left

<<

Shift right

~

One’s complement

Operator-operator logic ini melakukan manipulasi bit pada data integer atau character. Karena yang dimanipulasi adalah bit maka lebih enak kalau contoh contoh berikut ini dikonversi dari sistem bilangan desimal, yaitu sistem bilangan berbasis 10, ke sistem bilangan biner, yaitu sistem bilangan yang berbasis 2. Konversi dari sistem bilangan desimal ke sistem bilangan biner lebih mudah kalau dilewatkan sistem bilangan heksadesimal (berbasis 16) dulu. Program berikut ini memakai sebagian dari operator-operator di atas.

// C7_2.CPP

#include <iostream.h>

 

main()

{

int x1 = 67&63;

int x2 = 67 | 63;

int x3 = ~128 & 255;

int x4 = 9^5;

 

// Bitwise AND

cout << x1 << “\n”;

 

//Bitwise OR

cout << x2 << “\n”;

 

// Bitwise Complement

cout << x3 << “\n”;

 

// Bitwise XOR

cout << x4;

return 0;

}

Operator &

Suatu pernyataan :  67 & 63 dapat dikonversi dan diproses sebagai berikut:

Operator |

Suatu pernyataan :  67 | 63 dapat dikonversi dan diproses sebagai berikut:

Operator ~

Yang dirnaksud dengan one’s complementing adalah melakukan pembalikan dari bit,misal: 12810 =  00000000100000002 jika semua bit dibalik menjadi:

~12810 = -12910 = 11111111011111112. Kita dapat membatasi outputnya menjadi 8 bit saja dengan melakukan AND masking dengan & 00000000111111112 yaitu & 225.

Suatu pernyataan :  -128 & 255 dapat dikonversi dan diproses sebagai berikut:

Operator ^

Suatu pernyataan :  9 ^ 5 dapat dikonversi dan diproses sebagai berikut:

Operator << dan >>

Operator << melakukan pergeseran posisi bit kekiri dari operan sebelah kiri sebanyak yang ditunjukkan oleh operan kanan. Pada setiap proses pergeseran sebelah kanan diisi nol, misalnya: 12 << 310 menjadi 10002 = 810. Operator >> berlaku sebaliknya.

Unary & Operator

Unary & operator dipakai untuk menyatakan suatu reference. Dalam C++ suatu reference dapat dipandang sebagai alias dari suatu variabel. Pada waktu suatu reference dideklarasi, biasanya diasosiasikan dengan suatu variabel sehingga reference ini secara permanen berasosiasi dengan variabel tersebut, keadaan ini tidak dapat diubah misalnya merubah reference tersebut untuk menjadi alias dari suatu variabel yang lain. Contoh program berikut ini mendeklarasi suatu bilangan bulat bemama inl_sebenarnya dan membentahu komputer bahwa intj sebenaniya mempunyai nama lain yaitu int_aliwnya. Juga ditunjukkan bahwa operas; pada salah satunya akan berakibat sama pada yang satunya lagi.

//C8_2.CPP

#include (iostream.h>

 

main()

{

int int_sebenarnya = 123;

int &int_aliasnya = int_sebenarnya;

 

cout << ‘\n’ << int_sebenarnya;       //123

cout << ‘\n’ << int_aliasnya;          // 123

 

int_aliasnya++;

cout << ‘\n’ << int_sebenarnya;       // } 124

cout << ‘\n’ << int_aliasnya;          // 124

 

int_sebenarnya++;

cout << ‘\n’ << int_sebenarnya;      //125

cout << ‘\n’ << int_aliasnya;          // 125

 

// Cetak alamat-alamatnya

cout << ‘\n’ << &int_sebenarnya << ”  ”

<< &int_aliasnya;

}

Perlu diperhatikan bahwa :

  • suatu  reference  bukan  duplikat  dari  variabel  yang  diasosiasikan  dengan  reference tersebut. Program di atas menunjukkan keduanya mempunyai alamat yang sama.
  • pemakaian unary & operator tergantung pada konteknya. Pada deklarasi dari variabel inl_al.iawya, unary & operator adalah bagian dari tipe variabel int_aliasnya, yaitu variabel ml_aliasnya mempunyai tipe int & atau reference ke suatu int. Pada pernyataan cout, unary & operator dipakai untuk mendapatkan alamat yang diasosiasikan dengannya.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *