Mengapa Bools Adalah 1 Byte Daripada 1 Bit
Dalam C , jenis data bool menduduki 1 bait memori, menimbulkan persoalan tentang mengapa ia tidak diperuntukkan hanya 1 bit. Percanggahan saiz ini berpunca daripada had perkakasan asas, khususnya unit pemprosesan pusat (CPU).
Pengalamatan Memori CPU
CPU mempunyai kekangan asas: mereka boleh hanya baca dan tulis memori dalam ketulan dipanggil bait, yang biasanya terdiri daripada 8 bit. Ini bermakna CPU tidak boleh mengakses secara langsung satu bit dalam memori. Sebaliknya, ia mesti mengambil keseluruhan bait yang mengandungi bit itu.
Konsekuensi untuk Boolean
Untuk boolean, yang hanya boleh mewakili dua nilai (benar atau palsu), memperuntukkan 1 bit akan menjadi ruang simpanan yang mencukupi. Walau bagaimanapun, memandangkan CPU beroperasi pada tahap bait, boolean mesti disimpan dalam keseluruhan bait. Ini memastikan bahawa CPU boleh mengakses nilai boolean dengan cekap.
Pertimbangan Tambahan
Alasan yang sama digunakan untuk ketiadaan jenis data dengan saiz antara 1 bit dan 1 bait. Jika jenis data tersebut wujud, CPU akan terpaksa menggunakan lebih banyak memori daripada yang diperlukan untuk menyimpannya. Overhed ini akan memperkenalkan ketidakcekapan dalam penggunaan memori dan prestasi keseluruhan.
Oleh itu, saiz boolean dalam C (dan bahasa pengaturcaraan lain) adalah akibat langsung daripada had perkakasan asas, khususnya ketidakupayaan CPU untuk alamat memori pada butiran yang lebih halus daripada bait.
Atas ialah kandungan terperinci Mengapa Boolean Menduduki 1 Byte dalam C Daripada 1 Bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!