/* 用位操作,乘2相当于左移1位,所以2的幂只有最高位是1 所以问题就是判断你是不是只有最高位是1,怎判断呢 这些数-1后形成的数,除了最高位,后边都是1,如果n&n-1就可以判断了 如果是2的幂,&的结果是全0 */ if (n<=0) return false; return ((n&(n-1))==0);
划重点:
一个数*2,出相当于左移一位
Posted stAr_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]231. Power of Two判断是不是2的幂相关的知识,希望对你有一定的参考价值。
/* 用位操作,乘2相当于左移1位,所以2的幂只有最高位是1 所以问题就是判断你是不是只有最高位是1,怎判断呢 这些数-1后形成的数,除了最高位,后边都是1,如果n&n-1就可以判断了 如果是2的幂,&的结果是全0 */ if (n<=0) return false; return ((n&(n-1))==0);
划重点:
一个数*2,出相当于左移一位
以上是关于[LeetCode]231. Power of Two判断是不是2的幂的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four