如何迭代long long的二进制掩码?

时间:2013-03-18 15:54:52

标签: c++ binary

如何迭代...000010000...的唯一(long long)二进制掩码? 我的意思是像0001, 0010, 0100, 1000

这样的面具

1 个答案:

答案 0 :(得分:4)

如果你的意思是每个掩码设置一个位:

for (unsigned long long mask = 1; mask != 0; mask <<= 1) {
    // Do something with mask
}

请注意,必须使用unsigned才能在班次溢出时定义行为。

我假设你并不是指所有可能的面具价值;迭代所有这些都需要很长时间。