Monday, December 17, 2018

BITWISE OPERATORS

Dalam bahasa pemrograman C, operasi dapat dilakukan pada tingkat bit menggunakan operator bitwise.

Operasi bitwise dikontraskan oleh operasi tingkat byte yang mencirikan mitra logis bitwise operator, operator AND, OR, dan NOT. Alih-alih melakukan pada bit individu, operator byte-level melakukan string delapan bit (dikenal sebagai byte) pada suatu waktu. Alasan untuk ini adalah bahwa byte biasanya merupakan unit terkecil dari memori beralamat (yaitu data dengan alamat memori yang unik.)

Ini berlaku untuk operator bitwise juga, yang berarti bahwa meskipun mereka beroperasi hanya satu bit pada suatu waktu mereka tidak dapat menerima apa pun yang lebih kecil dari byte sebagai input mereka.



Contoh:


int A=24; int B=35; int C;
C = A & B;    // value C = 0
C = A | B;     // value C = 59

Note:


A=24 binary: 011000
B=35 binary: 100011
Bit by bit AND operation resulting: 000000, in decimal: 0
Bit by bit OR operation resulting : 111011, in decimal: 59


Operasi XOR dari dua bit menghasilkan 1 jika kedua bit berbeda, dan akan menghasilkan 0 jika keduanya analog.

Contoh:

int A,B=45;

A = B^75;     // Result A=102


Note:

Decimal 45 binary: 0101101
Decimal 75 binary: 1001011


bit by bit XOR will result in : 1100110 or 102 in decimal


Untuk membuat nilai komplement-1, maka setiap bit dengan nilai 0 bertukar ke 1 dan sebaliknya.

Contoh:

Dalam C, menulis heksadesimal harus dimulai dengan 0x


int A, B=0xC3;
A=~B;    //value A=0x3C;

Note:


0xC3 binary: 1100 0011
complement-1 result:
0011 1100  in hexadecimal 3C

Contoh Lain:

int A, B=78;
A = B >> 3; //value A=9

A = B << 2; //value A=312

78, binary: 0100 1110
first shift right: 0010 0111
second shift right: 0001 0011
third shift right : 00001001  à 9 decimal

78, binary: 0100 1110
first shift left: 0100 11100
second shift left: 0100 111000 à 312 decimal

No comments:

Post a Comment