二进制枚举

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
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,059评论 0 13
  • 说明 1 << i = 2^i 所以 1 << n 是子集的个数在枚举的 s 中,如果第 i 个二进制位为 1 ,...
    qratosone阅读 883评论 0 0
  • source Description 在选举问题中,总共有n个小团体,每个小团体拥有一定数量的选票数。如果其中m个...
    Gitfan阅读 325评论 0 0
  • 下雨了。 不知是春雨还是夏雨,忽冷忽热的天气让我已经搞不清节气,只知道这雨毫无征兆地下,又毫无征兆地停。 我没有关...
    niiiiiin阅读 181评论 0 0
  • 今天一菇凉语音聊天,一开聊就给我发来了语音“叔叔,叔叔”的叫得我浑身发麻,搞得我一天不能正常工作,哎!大致聊了些公...
    乱七八遭遭阅读 411评论 1 1