Operasi bitwise dalam C++ ialah kaedah pengiraan yang biasa digunakan oleh pengaturcara Dengan menggunakan operasi bitwise untuk memproses data, beberapa tugas pengkomputeran yang kompleks boleh diselesaikan dengan lebih cekap. Artikel ini memperkenalkan simbol operasi bit biasa dalam C++ dan teknik aplikasinya, serta beberapa contoh yang mungkin digunakan dalam pembangunan sebenar.
C++ menyediakan enam simbol operasi bitwise yang boleh beroperasi pada bit binari, empat daripadanya ialah operator bitwise dan dua lagi ialah operator shift. Simbol operasi bitwise adalah seperti berikut:
& operasi Bitwise AND: Hasilnya ialah 1 apabila kedua-dua bit binari adalah 1, jika tidak ia adalah 0.
|. Operasi Bitwise ATAU: Hasilnya ialah 0 apabila kedua-dua bit binari adalah 0, jika tidak ia adalah 1.
^ Operasi XOR Bitwise: jika dua bit binari adalah sama, hasilnya ialah 0, dan jika dua bit binari berbeza, hasilnya ialah 1.
~ Operasi penafian bitwise: menafikan bit binari, iaitu, 0 menjadi 1, dan 1 menjadi 0.
Simbol operasi anjakan adalah seperti berikut:
Operasi anjakan kanan: Gerakkan nombor perduaan ke kanan mengikut bilangan digit yang ditentukan, dan isikan bit tinggi dengan 0 atau 1 (bergantung pada sama ada nombor asal adalah positif atau negatif).
Operasi bit digunakan secara meluas dalam operasi komputer peringkat rendah Banyak algoritma yang cekap boleh direalisasikan melalui beberapa teknik operasi bit pintar. Berikut adalah beberapa teknik yang biasa digunakan:
2.1 Menentukan pariti
Untuk nombor perduaan, apabila digit terakhirnya ialah 1, nombor itu ganjil, dan sebaliknya. Oleh itu, kita boleh menentukan pariti nombor melalui operasi bit.
Untuk sebarang integer n, jika hasil n & 1 ialah 0, ia bermakna n ialah nombor genap, jika tidak ia adalah nombor ganjil. Contohnya:
int n = 5;
if( n & 1 ){
cout << "奇数" << endl;
}
else {
cout << "偶数" << endl;
}
2.2 Tukar nilai dua nombor
Tukar nilai dua pembolehubah , secara amnya Kaedahnya ialah menggunakan pembolehubah ketiga untuk menyimpan nilai salah satu pembolehubah, dan kemudian memberikan nilai pembolehubah lain kepadanya. Walau bagaimanapun, menggunakan operasi bit tidak memerlukan penggunaan ruang tambahan untuk penyimpanan, tetapi boleh dilaksanakan secara terus melalui operasi bit XOR, iaitu:
int a = 10, b = 20
a = a ^ b = b ^ a;
a = a ^ b;
int count = 0;
manakala (n != 0){
if (n & 1 == 1){ count++; } n = n >> 1; //右移一位
return count;
}
return (n & (1 << i)) !=0 ;
return n | (1 << i);
return n & ~(1 << i);
for (int j = 0; j < img.colnum(); j++){ if (img.at(i,j) < threshold){ img.at(i,j) = 0; //设为0 } else { img.at(i,j) = 255; //设为255 } }
Atas ialah kandungan terperinci Operasi bit dalam C++ dan kemahiran aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!