Adakah Menggunakan -1 untuk Menetapkan Semua Bit kepada Benar merupakan Pendekatan Selamat?
Pelbagai bahasa pengaturcaraan, termasuk C dan C , sering menggunakan ini teknik:
unsigned int flags = -1; // all bits are true
Pendekatan ini bertujuan untuk memulakan pembolehubah dengan semua bit ditetapkan kepada 1. Walau bagaimanapun, keselamatannya dan mudah alih kekal dipersoalkan.
Kebaikan dan Keburukan -1, ~0 dan 0xffffffff
Untuk menjawab soalan ini, kita mesti mempertimbangkan tingkah laku ketiga-tiga pilihan ini dalam pelbagai senario:
Pengesyoran
Berdasarkan analisis di atas, adalah disyorkan untuk memulakan pembolehubah bendera dengan -1. Pendekatan ini adalah yang paling mudah dan menjamin hasil yang konsisten merentas perwakilan integer dan seni bina mesin yang berbeza.
Seperti yang dijelaskan oleh rujukan yang disediakan, pilihan -1 memfokuskan pada nilai yang ditetapkan dan bukannya corak bit asas. Dengan memulakan dengan -1, kami memperoleh nilai tertinggi yang mungkin untuk jenis int yang tidak ditandatangani, memastikan semua bit ditetapkan dengan berkesan kepada benar.
Atas ialah kandungan terperinci Adakah Menggunakan -1 untuk Menetapkan Semua Bit Integer Tidak Ditandatangani kepada Benar Pendekatan Paling Selamat dan Mudah Alih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!