2的幂

个数 n 是 222 的幂,当且仅当 nnn 是正整数,并且 nnn 的二进制表示中仅包含 111 个 111。

因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 000 即可。下面介绍两种常见的与「二进制表示中最低位」相关的位运算技巧。

第一个技巧是


n & (n - 1)

public bool IsPowerOfTwo(int n) {      
    if(n==1)
    {
        return true;
    }
    else
    {
       
        while(n>2){
             if (n%2==1)
           {
            return false;
           }
            n=n/2;
        }
        if(n==2)
        {
          return true;
        }
        else
        {
            return false;
        }
       
    }        

    }
posted @   yinghualeihenmei  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-04-19 C#中使用DataGridView显示二维数组中的内容
点击右上角即可分享
微信分享提示