当前位置: 首页 > 学习知识 > (number != 0)&&((number&(number-1))==0)

(number != 0)&&((number&(number-1))==0)

网站编辑:上海建站网 发布时间:2022-05-18  点击数:
导读:(number != 0)&&((number&(number-1))==0) (number != 0)&&((number&(number-1))==0)这是一个判断是否为2的幂的数,大神分析下,这个语句的运行思路?number为任意输入的整数 九月霜降 1年前他留下的回答 已收到1个回答...

(number != 0)&&((number&(number-1))==0)

(number != 0)&&((number&(number-1))==0)
这是一个判断是否为2的幂的数,大神分析下,这个语句的运行思路?number为任意输入的整数
九月霜降 1年前他留下的回答 已收到1个回答

画出心中的彩虹 网友

该名网友总共回答了18个问题,此问答他的回答如下:采纳率:83.3%

(number != 0)和((number&(number-1))==0)优先级是同等的.
先运算左边,如果number!=0为真,再运算右边;否则,结果直接为假,不计算右边(这个叫懒惰)
再看右边.首先需要知道2的幂和二进制的关系.2的幂就是2,4,8,16……二进制数为10, 100, 1000, 10000……
number和number-1进行与运算(对应位上同为1则结果为1),结果为0则是2的幂

1年前他留下的回答 追问

2

九月霜降

右边的那个运算能在解释清楚点么,就是这个地方有点糊,谢谢

画出心中的彩虹

首先2的幂的二进制数最高位是1,比如100000000000。不管number是不是2的幂,number一定可以写成1abcd的形式(abcd的取值为0或者1),number和number-1的与运算为0,那么number-1是高位必须是0,即是0efgh的形式。那么1abcd-1=0efgh说明什么呢?说明1abcd减1的时候一直在借位,也就是说abcd都是0,所以number就是10000,即2的幂

  以上就是小编为大家介绍的(number != 0)&&((number&(number-1))==0) 的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!

  标签:
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!
浏览此文的人还看过
俄罗斯与中国时差?
俄罗斯与中国时差?

详情:操作步骤/方法11俄罗斯与中国时差是早5个小时。22如果俄罗......

王者营地如何下载
王者营地如何下载

详情:操作步骤/方法1在桌面上打开我的应用商店,点击进入。2来到应......

华为手机如何拍摄超级月亮
华为手机如何拍摄超级月亮

详情:操作步骤/方法1首先打开手机相机,划到专业模式。2固定好手机......

怎么设置信任站点
怎么设置信任站点

详情:操作步骤/方法1打开IE浏览器,选择右上角的设置按钮,或者菜......

相关网站

  • 北京墓地
  • 成都墓地
  • 长城华人怀思堂
  • 清东陵万佛园
  • 九里山二区公墓
  • 施孝园
  • 华夏陵园
  • 中华永久陵园
  • 珍珠源公墓
  • 灵山宝塔陵园
  • 长城华人怀思堂
  • 清东陵万佛园
  • 九里山二区公墓
  • 施孝园
  • 华夏陵园
  • 中华永久陵园
  • 珍珠源公墓
  • 灵山宝塔陵园
  • 长城华人怀思堂
  • 清东陵万佛园
  • 九里山二区公墓
  • 施孝园
  • 华夏陵园
  • 中华永久陵园
  • 珍珠源公墓
  • 灵山宝塔陵园
  • 真武山公墓
  • 大朗陵园
  • 北京墓地
  • 成都墓地
  • 院山公墓
  • 卧龙寺
  • 长松寺
  • 凤凰陵园
  • 白塔山公墓
  • 宝光塔陵公墓
  • 红枫艺术陵园
  • 金沙陵园
  • 金土坡公墓
  • 燃灯寺
  • 莲花公墓
  • 真武山公墓
  • 大朗陵园
  • 院山公墓
  • 卧龙寺
  • 长松寺
  • 凤凰陵园
  • 白塔山公墓
  • 宝光塔陵公墓
  • 红枫艺术陵园
  • 金沙陵园
  • 北京墓地
  • 成都墓地
  • 金土坡公墓
  • 燃灯寺
  • 莲花公墓