二进制枚举

2018-11-24  本文已影响0人  Claire_cc

1.将一个数左移n位,就相当于乘以了2的n次方(eg:2<<3相当于2*8)
2.对于A << B,表示把A转化为二进制后向左移动B位(在末尾添加B个0)。
对于A >> B,表示把A转化为二进制后向右移动B位(删除末尾的B位)。
3.01枚举

for (int i = 0; i < (1<<n); ++i) 
{
    for (int j = 0; j < n;++j)
    //从0开始,到n-1,一共n位;查看每一位是0还是1
    {
        if ((i&(1<<j))==1)
        // 这里判断二进制 i 从右数第 j + 1 位是否为 1
    }
}

上一篇下一篇

猜你喜欢

热点阅读