Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Semak Status Bit Tanpa Peralihan Bit dalam C dan C?

Bagaimana untuk Semak Status Bit Tanpa Peralihan Bit dalam C dan C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-26 12:49:111030semak imbas

How to Check a Bit's Status Without Bit Shifting in C and C  ?

Menyemak Status Bit Tanpa Peralihan Bit

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) &amp; (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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn