Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Menguasai Operator Bitwise dalam C: AND, OR, XOR, Shift & Komplement

Apa itu Operator Bitwise?

Operator bitwise memanipulasi bit individual dari nilai integer. Tidak seperti operator aritmatika yang bekerja pada bilangan bulat, operator bitwise bertindak pada representasi biner, menjadikannya ideal untuk tugas kritis kinerja seperti flag, bit mask, dan kontrol perangkat tingkat rendah.

Dalam C, operator bitwise yang tersedia adalah:

OperatorArti
&Bitwise AND
|Bitwise OR
^Bitwise XOR (exclusive OR)
~Bitwise NOT (one’s complement)
<<Left shift
>>Right shift

Operator bitwise hanya didefinisikan untuk tipe integral; tidak berlaku untuk tipe floating-point seperti float atau double.

Operasi dimulai dari bit least significant (LSB) dan melanjutkan ke most significant bit (MSB). Tabel kebenaran berikut meringkas hasil biner:

Operand xOperand yx & yx | yx ^ y
00000
01011
10011
11110

Dalam bagian-bagian berikut kita akan membahas lebih dalam setiap operator dengan contoh.

Bitwise AND (&)

Operator AND mengembalikan 1 hanya ketika kedua bit yang bersesuaian adalah 1; jika tidak hasilnya adalah 0. Biasa digunakan untuk menyaring bit yang tidak diinginkan.

 Op1 = 0000 1101 Op2 = 0001 1001 Result = 0000 1001 

Bitwise OR (|)

Operator OR mengembalikan 1 jika setidaknya satu bit adalah 1. Berguna untuk menetapkan bit tertentu.

 Op1 = 0000 1101 Op2 = 0001 1001 Result = 0001 1101 

Bitwise XOR (^)

Operator XOR mengembalikan 1 hanya ketika bit berbeda. Berguna untuk mengubah bit.

 Op1 = 0000 1101 Op2 = 0001 1001 Result = 0001 0100 

Contoh program:

#include <stdio.h> int main() { int a = 20; /* 20 = 010100 */ int b = 21; /* 21 = 010101 */ int c = 0; c = a & b; /* 20 = 010100 */ printf("AND - c = %d\n", c); c = a | b; /* 21 = 010101 */ printf("OR - c = %d\n", c); c = a ^ b; /* 1 = 000001 */ printf("XOR - c = %d\n", c); return 0; } 

Output:

 AND - c = 20 OR - c = 21 XOR - c = 1 

Operator Bitwise Shift (<< dan >>)

Operator shift memindahkan bit ke kiri atau kanan dengan jumlah tertentu.

Contoh dengan bilangan 4-bit 1111:

 x << 2 → 1100 x >> 2 → 0011 

Ilustrasi program:

#include <stdio.h> int main() { int a = 20; /* 20 = 010100 */ int c = 0; c = a << 2; /* 80 = 101000 */ printf("Left shift - c = %d\n", c); c = a >> 2; /* 5 = 000101 */ printf("Right shift - c = %d\n", c); return 0; } 

Output:

 Left shift - c = 80 Right shift - c = 5 

Bitwise Complement (~)

Operator komplement membalik setiap bit: 1 menjadi 0 dan sebaliknya. Ini adalah operator unary yang diterapkan pada satu operand.

 0000 1111 → 1111 0000 

Contoh program:

#include <stdio.h> int main() { int a = 10; /* 10 = 001010 */ int c = ~a; /* -11 in two’s complement */ printf("Complement - c = %d\n", c); return 0; } 

Output:

 Complement - c = -11 

Semua Operator Bersama

Berikut adalah program ringkas yang menunjukkan setiap operator bitwise yang dibahas.

#include <stdio.h> int main() { unsigned int x = 48; /* 0011 0000 */ unsigned int y = 13; /* 0000 1101 */ int z = 0; z = x & y; /* 0 = 0000 0000 */ printf("AND - x & y = %d\n", z); z = x | y; /* 61 = 0011 1101 */ printf("OR - x | y = %d\n", z); z = x ^ y; /* 61 = 0011 1101 */ printf("XOR - x ^ y = %d\n", z); z = ~x; /* -49 = 1111 0100 (two’s complement) */ printf("NOT - ~x = %d\n", z); z = x << 2; /* 192 = 1100 0000 */ printf("Left shift - x << 2 = %d\n", z); z = x >> 2; /* 12 = 0000 1100 */ printf("Right shift - x >> 2 = %d\n", z); return 0; } 

Result:

 AND - x & y = 0 OR - x | y = 61 XOR - x ^ y = 61 NOT - ~x = -49 Left shift - x << 2 = 192 Right shift - x >> 2 = 12 

Poin Utama

Bahasa C

  1. Kelas dan Objek C#: Fondasi untuk OOP yang Kuat
  2. Menguasai Kelas dan Metode Abstrak C#: Panduan Praktis
  3. Memahami Kelas dan Metode Parsial C#
  4. Menguasai Kelas dan Metode Tersegel di C#—Kapan Menggunakannya, Contoh Jelas, dan Tingkatkan Keamanan serta Performa Kode
  5. Menguasai Operator C++: Panduan Lengkap dengan Contoh Praktis
  6. Kata Kunci dan Pengidentifikasi C: Panduan Praktis
  7. Menguasai Operator Pemrograman C: Panduan Komprehensif
  8. IoT & Blockchain: Pergeseran Paradigma dalam Kepercayaan dan Efisiensi Data
  9. Operator C++ Dijelaskan: Tipe, Contoh, dan Program Contoh
  10. Panduan Lengkap Operator Python: Aritmetika, Logika, Perbandingan, Penugasan, Bitwise, dan Prioritas