用一个表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句

编程入门 行业动态 更新时间:2024-10-10 18:20:58

用一个<a href=https://www.elefans.com/category/jswz/34/1771310.html style=表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句"/>

用一个表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句

用一个表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句

答案:!(X & (X - 1))

分析:2^N(2,4,8,16)这样的数转化成二进制是10、100、1000、10000。

         若X-1与X做与运算,结果是0,则X是2^N。

扩展:求一个整数的二进制形式中包含1的数量

 1 int func(int x)
 2 {
 3     int count = 0;
 4     while(x)
 5     {
 6         count ++;
 7         x = x & (x - 1);
 8     }
 9     return count;
10 }

 

转载于:.html

更多推荐

用一个表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句

本文发布于:2024-02-06 22:28:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751562.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表达式   不可用   语句   个数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!