在計算機程序設計中,布爾數組是一系列值,它只能保存true或false的值。根據定義,布爾值只能是真或假,并且不能保存任何其他中間值。數組是在線性內存空間中占據數值位置的一系列數據類型。而布爾數組的實際實現通常由編譯...
在計算機程序設計中,布爾數組是一系列值,它只能保存true或false的值。根據定義,布爾值只能是真或假,并且不能保存任何其他中間值。數組是在線性內存空間中占據數值位置的一系列數據類型。而布爾數組的實際實現通常由編譯器或計算機語言庫決定,最有效的方法是使用位而不是完整的字節或字,包括跟蹤屬性標志和對齊物理硬件接口的設置。

使用布爾數組存儲信息的原始方法在可用內存很少的計算機上。布爾數組的第一個實現形式是位數組。它使用更大的數據類型,如字節或長整數,通過將數據類型的位設置為真或假來保存信息。這樣,一個8位長的單字節可以保存八個不同的真或假值,節省空間并允許高效的按位操作。
隨著計算機內存的增大,使用位數組的需求也在下降。雖然使用位確實提供了位移位和使用的可能性邏輯運算符允許難以置信的快速處理,它還需要自定義代碼來處理這些類型的操作。使用標準數組結構來保存字節序列是一個更簡單的解決方案,但是在程序執行期間它需要更多的內存。當創建一個32個布爾值的數組時可以看到這一點對于位數組,數據將只占用4個字節的內存,但是布爾類型數組可能占用32到128個字節的任何位置,具體取決于系統實現。
當使用布爾數組類型時,某些計算機編程語言確實實現了位數組,雖然這并不常見,但布爾數組的優點是在查看源代碼時非常容易閱讀。比較和賦值可以清楚地顯示出來,而對于位數組,必須使用邏輯運算符"and"、"or"和"not",這可能會導致代碼混亂。
盡管使用方便,但有一個功能不能與布爾數組一起使用的是位掩碼。位掩碼是一個單字節或更大的數據類型,它包含與多個條件相關的一系列真值和假值。在一個操作中,可以同時檢查多個位的真或假狀態。對于基于整數的布爾值數組,同樣的操作也需要用一個循環來執行。