Rumah >pembangunan bahagian belakang >C++ >Operasi bit dalam C++ dan kemahiran aplikasinya
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 ;}2.5 Tetapkan bit ke-i dalam nombor binari kepada 1 Alihkan nombor 1 ke kiri dengan i bit, dan kemudian alihkan binari ini Lakukan operasi OR bitwise pada nombor dan nombor asal untuk menetapkan bit ke-i dalam nombor asal kepada 1. unsigned int setBit(unsigned int n, int i){
return n | (1 << i);}2.6 Tetapkan bit ke-i dalam nombor binari kepada 0 Alihkan nombor 1 ke kiri dengan bit i, kemudian songsang dan cantumkan nombor perduaan Lakukan operasi bitwise DAN dengan nombor asal untuk menetapkan bit ke-i dalam nombor asal kepada 0. unsigned int clearBit(unsigned int n, int 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 } }}Dengan beroperasi pada digit binari, banyak algoritma dan struktur data yang cekap juga boleh dilaksanakan, seperti peta bit, jadual Hash dsb. Ringkasnya, operasi bit ialah alat yang berkuasa dan digunakan secara meluas dalam pengaturcaraan. Kemahiran dalam simbol dan teknik operasi bit boleh memainkan peranan aktif dalam melaksanakan algoritma dan struktur data yang cekap dan meningkatkan kecekapan operasi program.
Atas ialah kandungan terperinci Operasi bit dalam C++ dan kemahiran aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!