首页 > 编程语言 >C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)

C语言----判断n是否是2的次方数,利用到按位与&,算法n&(n-1)

时间:2024-05-26 20:30:22浏览次数:34  
标签:--- 二进制 是否是 C语言 ---- int 按位 次方

//写一个代码,判断n是否是2的次方数
//if(n&(n-1))==0
/*
2的0次方是1---二进制1
2的1次方是2---二进制10
2的2次方是4---二进制100

2的一次方-1是1---二进制是1
2的二次方-1是3---二进制是11
2的三次方-1是7---二进制是111
n与n-1  按位与后&是0就是0,两个1才是1
所以if(n&(n-1))==0的话
那么n就是2的次方数
*//*判断n是否是2的次方数*/
int main()
{
    int n;
    scanf("%d", &n);
    if (n & (n - 1)== 0) ;
    {
        printf("YES");
    }
    return 0;
}

 代码可能有点复杂,各位细品,主要就是&的用法

标签:---,二进制,是否是,C语言,----,int,按位,次方
From: https://blog.csdn.net/2301_80863610/article/details/139219967

相关文章

  • C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
    //编写代码实现:求一个整数存储在内存中的二进制中1的个数//第一种写法/*intcount_bit_one(unsignedintn){intcount=0;while(n)//除到最后余数是0,那么这个循环就结束了{//这个题就是可以想成求15的二进制的过程//每次都除以2,余数为1的时候就......
  • 【C++风云录】走进数字农业:农业科学与粮食安全
    跨越边界:农业模拟库的编程特性与应用领域前言在本篇文章中,我们将深入探讨六个领域的软件库—APSIM,AgroLib,CropModelMKS,SoilR,Bionet和FSEarth。这些库均用于农业生态系统建模、作物模拟、农业数据处理和分析、合成作物模型构造、土壤碳氮循环模型集成、生物网络模拟以及农......
  • 【高阶数据结构】红黑树
    1.红黑树的概念2.红黑树的性质只要满足前四点规则,就能保证最长路径<=最短路径*2。由红黑树的性质可以推出:1.最短路径全是黑色结点2.最长路径一定是一红一黑相间的。3.红黑树插入结点的规则首先我们每次插入结点时都需要插入红色结点。因为插入红色结点可能会违背......
  • MySQL主从复制(五):读写分离
    一主多从架构主要应用场景:读写分离。读写分离的主要目标是分摊主库的压力。读写分离架构读写分离架构一架构一结构图:这种结构模式下,一般会把数据库的连接信息放在客户端的连接层,由客户端主动做负载均衡。也就是说由客户端来选择后端数据库进行查询。读写分离架构二架构......
  • 实验5
    task1-1:点击查看代码#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);......
  • springmvc 前端向后端发送http请求报错“HTTP状态 405 - 方法不允许”
    如图我使用前端向后端发送文件时报错,405方法不允许,于是我就检查了前后端的method方法设置是否一致?  检查后发现明明前后端请求方式一致,都是post遵循文件上传的方式。这个问题令我十分苦恼,最后发现原来是前端提交form表单时设置的选项之间存在逗号,原则是每一项之间都不应......
  • have my hair cut
    标题致敬传奇抗压王裤子。今天去剪了头发。体验很好,老师帅。但是还是一直很不安我们i人剪了头发是这样的剪头发不是换发型但大概率得换而且很快会剪短乌龟的壳换了形状或是变薄肯定不安一直觉得理发师是个很好的职业与头脑有关又是纯技术活脑袋是用来思想的地方我......
  • 关于Module中在junit测试方法和非测试方法中获取相对路径不一致的问题
    注意:Module中在junit测试方法和非测试方法中获取相对路径不一致的问题如果在Module中测试相对路径是从当前Module下找非测试相对路径是在项目下找分析原因:Module中非测试方法属于整个项目方法,它面向整个Project,Project包含了下面的各个模块(module),所以非测试方法中,获取文......
  • 实验三 电子公文传输系统安全-进展2
    实验三电子公文传输系统安全-进展2本次作业分值10分|老师评分 任务详情-上周任务完成情况(代码链接,所写文档等)-本周计划上周任务完成情况采用sm4对存储的公文进行加密处理,密钥随机生成,乱序存储在数据库中。其中sm4采用cbc模式,iv固定,跟随密文一起存储。解密的......
  • 实验二 电子传输系统安全-进展1
    实验二电子公文传输系统安全-进展2任务详情上周任务完成情况(代码链接,所写文档等)本周计划上周任务完成情况sm3加盐packagecn.edu.nuc.article.util;importorg.bouncycastle.crypto.digests.SM3Digest;importorg.bouncycastle.jce.provider.BouncyCastleProvider;......