在计算机程序设计中,布尔数组是一系列值,它只能保存true或false的值。根据定义,布尔值只能是真或假,并且不能保存任何其他中间值。数组是在线性内存空间中占据数值位置的一系列数据类型。而布尔数组的实际实现通常由编译...
在计算机程序设计中,布尔数组是一系列值,它只能保存true或false的值。根据定义,布尔值只能是真或假,并且不能保存任何其他中间值。数组是在线性内存空间中占据数值位置的一系列数据类型。而布尔数组的实际实现通常由编译器或计算机语言库决定,最有效的方法是使用位而不是完整的字节或字,包括跟踪属性标志和对齐物理硬件接口的设置。

使用布尔数组存储信息的原始方法在可用内存很少的计算机上。布尔数组的第一个实现形式是位数组。它使用更大的数据类型,如字节或长整数,通过将数据类型的位设置为真或假来保存信息。这样,一个8位长的单字节可以保存八个不同的真或假值,节省空间并允许高效的按位操作。
随着计算机内存的增大,使用位数组的需求也在下降。虽然使用位确实提供了位移位和使用的可能性逻辑运算符允许难以置信的快速处理,它还需要自定义代码来处理这些类型的操作。使用标准数组结构来保存字节序列是一个更简单的解决方案,但是在程序执行期间它需要更多的内存。当创建一个32个布尔值的数组时可以看到这一点对于位数组,数据将只占用4个字节的内存,但是布尔类型数组可能占用32到128个字节的任何位置,具体取决于系统实现。
当使用布尔数组类型时,某些计算机编程语言确实实现了位数组,虽然这并不常见,但布尔数组的优点是在查看源代码时非常容易阅读。比较和赋值可以清楚地显示出来,而对于位数组,必须使用逻辑运算符"and"、"or"和"not",这可能会导致代码混乱。
尽管使用方便,但有一个功能不能与布尔数组一起使用的是位掩码。位掩码是一个单字节或更大的数据类型,它包含与多个条件相关的一系列真值和假值。在一个操作中,可以同时检查多个位的真或假状态。对于基于整数的布尔值数组,同样的操作也需要用一个循环来执行。