码迷,mamicode.com
首页 > 其他好文 > 详细

2的n次幂

时间:2019-12-07 14:46:23      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:无符号数   pre   需要   span   ==   col   进制   学习   return   

位运算判断2的n次幂:

   举个栗子,n = 8;则二进制表示就为1000,n-1则为 0111 取&刚好等于0

   嘿嘿,巧妙吧。

   再举个栗子,n = 7; 则二进制为 0111,n-1则为0110 取&则不为0

   嘿嘿,也没问题,不过这个算法仅限于无符号数。

bool is_power_of_2(unsigned long n)
{
  return (n != 0 && ((n & (n - 1)) == 0));
}

  顺便说一下如何判断2的倍数,其实很明显,把奇数转成二进制后,最后一位一定是1,所以只需要判断一下 n & 1就行了

 

学习不易,诸君共勉!

2的n次幂

标签:无符号数   pre   需要   span   ==   col   进制   学习   return   

原文地址:https://www.cnblogs.com/daker-code/p/12001483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!