如何迭代...000010000...
的唯一(long long
)二进制掩码?
我的意思是像0001, 0010, 0100, 1000
答案 0 :(得分:4)
如果你的意思是每个掩码设置一个位:
for (unsigned long long mask = 1; mask != 0; mask <<= 1) {
// Do something with mask
}
请注意,必须使用unsigned
才能在班次溢出时定义行为。
我假设你并不是指所有可能的面具价值;迭代所有这些都需要很长时间。