假设您有一台具有32位字的计算机,并且想要在具有32个元素的域上表示集合。例如{0 … 31}的子集。
集合用单个整数表示,其中且仅当x在集合中时,位#x才为1。所以集合{0,1,17,30}将是
01000000000000100000000000000011
按照惯例,我们将位从31到0(从左到右)编号。
通过这种表示:
- 交集是二进制AND(
x & y
) - 联合是二进制OR(
x | y
) - 集合差异为二进制AND NOT(
x & ~y
) - 对称集差是二进制XOR(
x ^ y
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)