Operator Bitwise yang didukung oleh Pascal tercantum dalam tabel berikut. Asumsikan variabel A memiliki 60 dan variabel B memiliki 13, maka -
Operator |
Deskripsi |
Contoh |
& |
Biner AND Operator menyalin sedikit ke hasil jika ada di kedua operan. |
(A & B) akan menghasilkan 12, yaitu 0000 1100 |
| |
Biner ATAU Operator menyalin sedikit jika ada di salah satu operan. |
(A | B) akan menghasilkan 61, yaitu 0011 1101 |
! |
Biner ATAU Operator menyalin sedikit jika ada di salah satu operan. Ini sama dengan | operator. |
(A! B) akan menghasilkan 61, yaitu 0011 1101 |
~ |
Operator Pelengkap Binary Ones adalah unary dan memiliki efek bit 'membalik'. |
(~ A) akan memberikan -61, yaitu 1100 0011 dalam bentuk komplemen 2 karena bilangan biner bertanda. |
<< |
Operator Binary Left Shift. Nilai operan kiri dipindahkan ke kiri dengan jumlah bit yang ditentukan oleh operan kanan. |
A << 2 akan menghasilkan 240, yaitu 1111 0000 |
>> |
Operator Pergeseran Kanan Biner. Nilai operan kiri dipindahkan ke kanan dengan jumlah bit yang ditentukan oleh operan kanan. |
A >> 2 akan menghasilkan 15, yaitu 0000 1111 |
Harap dicatat bahwa implementasi Pascal berbeda dalam operator bitwise. Free Pascal, kompilator yang kami gunakan di sini, bagaimanapun, mendukung operator bitwise berikut -
Operator |
Operasi |
tidak |
Bitwise TIDAK |
dan |
Bitwise DAN |
atau |
Bitwise ATAU |
xor |
Eksklusif bitwise ATAU |
shl |
Sedikit bergeser ke kiri |
Shr |
Sedikit bergeser ke kanan |
<< |
Sedikit bergeser ke kiri |
>> |
Sedikit bergeser ke kanan |
Contoh berikut menggambarkan konsep -
program beBitwise;
var
a, b, c: integer;
begin
a := 60; (* 60 = 0011 1100 *)
b := 13; (* 13 = 0000 1101 *)
c := 0;
c := a and b; (* 12 = 0000 1100 *)
writeln('Line 1 - Value of c is ', c );
c := a or b; (* 61 = 0011 1101 *)
writeln('Line 2 - Value of c is ', c );
c := not a; (* -61 = 1100 0011 *)
writeln('Line 3 - Value of c is ', c );
c := a << 2; (* 240 = 1111 0000 *)
writeln('Line 4 - Value of c is ', c );
c := a >> 2; (* 15 = 0000 1111 *)
writeln('Line 5 - Value of c is ', c );
end.
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is -61
Line 4 - Value of c is 240
Line 5 - Value of c is 15