本文主要是介绍面试题:一条语句判断一个数是否为 2 的若干次幂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
鼠标选中查看结果:
(a)&(a-1)?'n':'y'
解析:如果一个数是2的若干次幂,它的二进制数的特征是最高位是1,后面全是0,
十进制2(二进制为 10)
十进制4(二进制为 100)
十进制8(二进制为 1000)
十进制16(二进制为10000)
。。。
a-1之后,二进制表示出来,全是1
例如:
十进制2(二进制为 10)减去1后变为1(二进制01)
十进制4(二进制为 100)减去1后变为3(二进制011)
十进制8(二进制为1000)减去1后变为7(二进制0111)
。。。
所以如果(a)&(a-1)结果是0的话,那么他就是2的若干次幂。
这篇关于面试题:一条语句判断一个数是否为 2 的若干次幂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!