• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?

如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了数的幂次方,幂次方,幂次方计算公式,幂次方怎么打,2的幂次方等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。
如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数与去减去1后的数字进行与运算后会发现为零。
最快速的方法:
(number & number - 1) == 0
原因:因为2的N次方换算是二进制为10……0这样的形式(0除外)。与上自己-1的位数,这们得到结果为0。例如。8的二进制为1000;8-1=7,7的二进制为111。两者相与的结果为0。计算如下:
1000
& 0111
-------
0000
使用递归来实现的代码如下:
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?
  • 如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?

相关文章

  • 2017-09-06HDU1081To The Max
  • 2017-05-28c++基础语法:普通继承
  • 2017-05-28C语言一维数组初步学习笔记
  • 2017-05-28c语言获取直播吧最近一周nba比赛信息
  • 2017-05-28引用参数和传值参数的区别深入解析
  • 2017-05-28C程序实现整数的素数和分解问题
  • 2017-05-28平衡二叉树AVL操作模板
  • 2017-05-28详解C++中二进制求补运算符与下标运算符的用法
  • 2017-05-28C++实现N个骰子的点数算法
  • 2017-05-28详解C++中的成员访问运算符和指针到成员运算符

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 全排列算法的原理和实现代码
    • C++取得本机IP的方法
    • bmp 缩放代码(BMP位图任意放大 和缩小)
    • C语言函数指针(指向函数的指针)详解
    • C语言中设置用户识别码的相关函数的简单讲解
    • 浅析C语言中typeof关键字用法
    • C++读写INI配置文件的类实例
    • 简述C语言中system()函数与vfork()函数的使用方法
    • sigsetjmp的用法总结
    • VC++实现View内容保存为图片的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有