因此,例如,通知具有以下标志:
public static final int FLAG_AUTO_CANCEL = 0x00000010;
这是数字 16 的十六进制。还有其他带有值的标志:
0x00000020
0x00000040
0x00000080
每次,它都会增加 2 的幂。将其转换为二进制,我们得到:
00010000
00100000
01000000
10000000
因此,我们可以使用按位运算符来确定存在哪些标志,等等,因为每个标志只包含一个 1 并且它们都位于不同的位置。
问题:
这一切都说得通,但为什么不直接使用booleans
呢?这仅仅是风格,还是有记忆或效率方面的好处?
编辑:
我知道通过组合它们,我们可以将大量信息存储在一个int
. 这是否单独使用,以便我们可以在一个单一的情况下传递大量布尔类型值,int
而不必传递大量参数?我不是说小事,这很方便,但是还有其他好处吗?