Pertimbangkan senario berikut:
int temp = 0x5E; // dalam perduaan 0b1011110.
Andaikan anda ingin menentukan sama ada bit 3 dalam temp ialah 1 atau 0, tanpa menggunakan peralihan dan penyamaran bit. Adakah terdapat fungsi terbina dalam untuk tugas ini, atau mesti anda melaksanakan penyelesaian anda sendiri?
Dalam C, anda boleh menyembunyikan manipulasi bit dengan mencipta makro:
#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))
Menggunakan makro ini , anda boleh menyemak bit nth dari hujung kanan menggunakan sintaks berikut:
CHECK_BIT(temp, n - 1)
Dalam C , anda mempunyai pilihan untuk menggunakan std::bitset. Kelas ini menawarkan cara untuk memanipulasi bit tanpa peralihan atau penyamaran bit eksplisit. Anda boleh mengakses bit individu dalam bitset menggunakan kaedah at(), contohnya:
std::bitset<8> temp_bitset(temp); if (temp_bitset.at(2)) { // bit 3 // Bit 3 is set }
Dengan menggunakan teknik ini, anda boleh menyemak status bit dengan mudah tanpa memerlukan manipulasi bit manual, memastikan kejelasan dan kebolehselenggaraan dalam kod anda.
Atas ialah kandungan terperinci Bagaimana untuk Semak Status Bit Tanpa Peralihan Bit dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!