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: 59Operasi 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