访问字节比一点快吗?为什么?

Win*_*car 5 performance byte bit

问题很简单:访问一个字节比一点快吗?如果我在一个字节中存储8个布尔值,那么当我必须比较它时,它比我使用8个字节要慢吗?为什么?

Mys*_*ial 4

可能性是没有。当今大多数机器中最小的可寻址内存单元是字节。大多数情况下,您无法按位寻址或访问。

事实上,访问特定位可能会更加昂贵,因为您必须构建掩码并使用一些逻辑。

编辑:

你的问题提到了“比较”,我不确定你的意思到底是什么。但在某些情况下,如果您的布尔值密集地打包为较大的整数类型,则可以使用按位运算符对多个布尔值非常有效地执行逻辑。

至于使用哪一个:字节数组(每个字节一个布尔值),或者每个位一个布尔值的密集结构,是一种空间效率权衡。对于某些需要存储大量布尔值的应用程序,密集包装更好,因为它可以节省内存。