首页 > 编程语言 >C#面:现有一个整数number,请写一个方法判断这个整数是否是2的N次方

C#面:现有一个整数number,请写一个方法判断这个整数是否是2的N次方

时间:2024-07-03 13:56:28浏览次数:16  
标签:运算 C# number 整数 int num 次方

要判断一个整数是否是2的N次方,可以使用位运算来实现。一个整数如果是2的N次方,那么它的二进制表示中只有一位是1,其余位都是0。可以通过将这个整数与它减去1的结果进行按位与运算,如果结果为0,则说明这个整数是2的N次方。

以下是一个示例代码:

public bool IsPowerOfTwo(int number)
{
    if (number <= 0)
    {
        return false;
    }
    
    return (number & (number - 1)) == 0;
}

解释:
首先判断输入的整数是否小于等于0,如果是,则直接返回false,因为负数和0都不是2的N次方。
然后使用位运算将输入的整数与它减去1的结果进行按位与运算,如果结果为0,则说明这个整数是2的N次方,返回true;否则返回false。
取模,⽤num % 2 == 0 可以判断。
位运算逻辑并,运算的逻辑是通过⼆进制,都是 1 时才为 1,其余都 0,然后结果是否等于 0,代码如下

bool IsPower(int num)
{
int result = num & 2;
return result == 0;
}

标签:运算,C#,number,整数,int,num,次方
From: https://blog.csdn.net/fishandfishand/article/details/140116748

相关文章

  • 简单课设:基于TCP协议的客户/服务器聊天室
            随着计算机的普及,网络编程也显得愈发重要,同时掌握实现客户/服务器程序的编写方法也不可忽视。通过学习,我们将了解TCP协议在网络通信中的重要性,掌握如何使用在Linux或Windows平台上编写简单的TCP客户/服务器程序。课程设计分为两个部分:服务器端和客户端。在服务......
  • 信息安全数学基础的几个C语言代码
    相关书籍:《信息安全数学基础-陈恭亮-清华大学出版社-第2版》(豆瓣)1.埃氏筛/*输入一个正整数,输出小于其的全部素数*/#include<stdio.h>#include<stdbool.h>#defineMAXN100001boolvis[MAXN]={1,1};voidEra(intqwq){for(inti=2;i<=qwq;i++){if(vis[......
  • electron 启动时调用exe
    在electron主程序,一般未main中//exe地址letservicePath='resources/service/win-unpacked/vue3-ts-music.exe'if(process.env.NODE_ENV==='development'){ servicePath='service/win-unpacked/vue3-ts-music.exe'}app.whenReady()......
  • 使用CMD命令.修改为Win 7传统右键菜单模式
    @echoofftitleH之尘.右键菜单%窗口标题%:menucolor02clsecho~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~echo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~echo欢迎使用H之尘脚本echo.echo请选择项目():echo.&echo【1】修改为Win7传统右键菜单模式echo.&e......
  • ros2 jazzy docker环境安装
    dockerhub限制国内访问了,需要配置下,参考:https://github.com/cmliu/CF-Workers-docker.io/issues/8sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<EOF{"registry-mirrors":["https://hub.uuuadc.top","https......
  • C#​发票识别接口,再长的税号录入都不怕
    “十二金”工程是我国政府在信息化建设中的重要一步,“金税工程”总称为中国税收管理信息系统(CTAIS),是我国电子政务的核心系统之一,是财政的重要环节。十二金”是面向政府办公业务建立的十二个重点信息应用系统,按“2523”分为四个层次,第一个“2”指提供宏观决策支持的金宏工程、......
  • Spring Cloud Gateway整合Knife4j 4.4.0实现微服务聚合文档(报错解决详细版)
    以前做过的都是单服务应用的文档,就算换到了微服务里做的实际上也是单服务(每个服务模块一个单独的文档,然后手动访问不同的端口去查找不同的模块文档,例如用户是3000端口,订单是3100端口,商品是3200端口)。这样的实现实际上挺蠢的,对前端伙伴很不友好,对自己测试也不友好,因此今天要说的......
  • excel基本操作:基础、数据条件格式、快捷键
    Excel有三个模式分别是选择模式、编辑模式和输入模式(有光标)=====》这些了解就够了,也是最基本的。1.快捷键:ctrl+shift+右三角   选择所有的直到右边没有空格的在体重的那个空格选择的时候,按住上面的组合键就会出现从体重那一列直到球员奖金那一列在按住ctrl+shift+下就......
  • 昇思25天学习打卡营第10天|xkd007|计算机视觉应用实践(1)-FCN(全卷积网络)图像语义分割
    FCN图像语义分割全卷积网络(FullyConvolutionalNetworks,FCN)是UCBerkeley的JonathanLong等人于2015年在FullyConvolutionalNetworksforSemanticSegmentation(点击可下载此论文)一文中提出的用于图像语义分割的一种框架。FCN是首个端到端(endtoend)进行像素级(pixellevel......
  • [漏洞复现]Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401)
    觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。看到长亭昨晚发送的漏洞风险提示,我这边快马加鞭看看能不能赶上热度,payload就放在星球了,欢迎各位师傅来白嫖,看上眼的话可以留下试试。漏洞描述GeoServer是一个开源服务器,用于共享、处......