原文:面试题:如何判断一个数是否是2的整数次幂

题目 如何判断一个数是不是 的整数次幂 解题方法 思路: 首先把 的整数次幂转换成二进制数,十进制的 转换成二进制是 B, 转换成二进制是 B, 转化成二进制是 B 如果一个整数是 的整数次幂,那么当它转化成二进制时,只有最高位是 ,其他位都是 接下来如果把这些 的整数次幂各自减 ,再转化成二进制。 这时候如果用原数值 的整数次幂 和它减 的结果进行按位与运算,也就是n amp n ,结果则为 结 ...

2020-04-27 14:04 0 2505 推荐指数:

查看详情

如何用一个语句判断一个整数是不是二的整数次——从一道简单的面试题浅谈C语言的类型提升(type promotion)

   最近招聘季,看JULY大哥的面试100题时,碰到这么一个扩展问题: 如何用一个语句判断一个整数是不是二的整数次?(此题在编程之美也有)   easy, 2的整数次的二进制形式只有一个1,只要用i和i-1按位相与,结果为零就说明是: int i; bool b ...

Tue Oct 08 00:25:00 CST 2013 22 295
判断一个数是否是2的

前言 概念: 如果一个数是2的,那么它的二进制是这样的: 2 10 4 100 8 1000 16 10000 也就是第一个是1,其他都是0。 然后-1的话: 1 01 4 11 8 111 16 1111 正文 (num&(num-1))==0 就是了。 解释 ...

Mon Mar 16 23:34:00 CST 2020 0 618
判断一个整数是否为另一个整数

   最近在学习微软推出的虚拟课程中关于网络上最火的20个关于c#的问题,写下关于对于这个问题的个人理解和解决思路,请各位看官笑纳. 题目为:(原)判断一个数是否2的? 这是我个人还没看正确答案前自己的解决思路(一个小控制台程序),代码 ...

Fri Sep 26 06:07:00 CST 2014 16 1466
判断一个数是否是2的N次

第一种方法 暴力解法 第二种方法 示例分析 以16为例,二进制表示为 16减1为15的二进制表示为 两者按位与 十进制表示为0,说明是2的N次。 扩展-判断一个数是否是n的N次 参考 [算法]快速判断一个数是否是2的次方 ...

Mon Nov 01 17:27:00 CST 2021 0 110
[算法]快速判断一个数是否是2的次方

利用与(&)运算符 可以快速判断一个数是否为2的次方 将2的次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了N个0, 因此问题可以转化为判断1后面是否跟了N个0就可以了。 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来 ...

Thu Apr 09 05:28:00 CST 2020 0 1492
python判断一个数是否是2的几次

判断一个数是不是2的几次,最简单粗暴的做法就是直接迭代除以2,这里有一个更好的方法,那就是采用位运算。 我们观察下面属于2的几次的变化规律,用2进制表示。 我们会发现凡是2的几次0除外,用二进制表示第一位全是1,后面全是0。这个规律好像是这样但是有什么用呢,不要急 ...

Mon Dec 24 21:49:00 CST 2018 0 2301
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM