百度试题 题目给出一行C语言表达式,判断给定的整数是否是一个2的幂。相关知识点: 试题来源: 解析 (b & (b-1)) == 0 反馈 收藏
在main函数中,我们通过用户输入一个数,并调用isPowerOfTwo函数来判断该数是否是2的幂次方,然后输出相应的结果。 如果输入的数是2的幂次方,比如输入1、2、4、8等,输出结果会显示该数是2的幂次方;否则输出结果会显示该数不是2的幂次方。 虽然上面的代码示例中并不涉及十进制转化成二进制的问题,但是可以介绍一下...
快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数...
2的幂次有个特点,就是2的幂次值在系统里二进制存储的时候1的个数为1 bool func(long n){ int p=0;for (int i=0;i<32;i++,n>>=1) if(n&1) p++;return (p==1);} 复杂度O(1),位运算应该很快了 我想知道是什么地方的面试题?要是就用一行就for(int i=0,p=0;i<32;p...
在这个例子中,isPowerOfTwo函数接受一个整数作为参数,使用位运算判断该数是否是2的幂次方。具体的判断条件是`(num & (num - 1)) == 0`,这个条件表示num的二进制表示中只有一位是1,其他位都是0。 在main函数中,我们通过用户输入一个数,并调用isPowerOfTwo函数来判断该数是否是2的幂次方,然后输出相应的结...
本文主要向大家介绍了如何使用C语言判断一个数是否是2的幂次方或4的幂次方,通过具体的实例让大家了解,希望对大家学习C语言有所帮助。 快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转...
快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数...
本文主要向大家介绍了如何使用C语言判断一个数是否是2的幂次方或4的幂次方,通过具体的实例让大家了解,希望对大家学习C语言有所帮助。 快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转...