for (int g=1; g<=100000; g++)
{
for (int y=0; y<20; y++)
{
if ( ((1<<y)&g) && (!((1<<(y+1))&g)) && ((1<<(y+2))&g) ) counter[g]++;
}
}
我试图了解这条if条件正在检查但仍然困惑,是否检查101?
任何人都可以解释这个if条件的测试结果吗?
答案 0 :(得分:2)
内循环在101
的至少22位中查找g
(可能相交)位模式的数量。并且条件可以替换为
if (((g >> i) & 0b111) == 0b101) counter[g]++;