Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Nilai Boolean Boleh Dikodkan dan Dinyahkodkan dengan Cekap kepada Bait?
Menyahkod dan mengekod nilai boolean masuk dan keluar daripada bait boleh dicapai melalui pelbagai kaedah. Artikel ini akan meneroka dua pendekatan:
Cara Sukar:
Menggunakan pendekatan manipulasi bit terus, fungsi berikut digunakan:
unsigned char ToByte(bool b[8]) { unsigned char c = 0; for (int i = 0; i < 8; ++i) { if (b[i]) { c |= 1 << i; } } return c; } void FromByte(unsigned char c, bool b[8]) { for (int i = 0; i < 8; ++i) { b[i] = (c & (1 << i)) != 0; } }
Dalam kaedah ini, setiap nilai boolean diwakili oleh bit, dengan bait (8 bit) boleh menyimpan 8 boolean nilai.
Cara Cool:
Pendekatan alternatif memanfaatkan medan bit dalam struktur dan kesatuan untuk menyediakan manipulasi data yang fleksibel:
struct Bits { unsigned b0 : 1, b1 : 1, b2 : 1, b3 : 1, b4 : 1, b5 : 1, b6 : 1, b7 : 1; }; union CBits { Bits bits; unsigned char byte; };
Di sini , struktur Bits memegang 8 nilai boolean sebagai medan bit. Kesatuan CBits berkongsi ruang memori yang sama, membenarkan akses kepada nilai boolean melalui ahli bit atau nilai bait melalui ahli bait.
Nota Pelaksanaan:
Atas ialah kandungan terperinci Bagaimanakah Nilai Boolean Boleh Dikodkan dan Dinyahkodkan dengan Cekap kepada Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!