检查一个数字是否在C ++中具有两个相邻的设置位
在这里,我们将看到,如果一个数字在其二进制表示形式中具有相邻的设置位。假设数字12具有两个连续的1(12=1100)。
要检查这种类型的号码,想法很简单。我们将数字移位1位,然后按位与。如果按位与结果不为零,则必须有一些连续的1。
示例
#include <iostream>
using namespace std;
bool hasConsecutiveOnes(int n) {
if((n & (n >> 1)) == 1){
return true;
}else{
return false;
}
}
int main() {
int num = 67; //1000011
if(hasConsecutiveOnes(num)){
cout << "Has Consecutive 1s";
}else{
cout << "Has No Consecutive 1s";
}
}输出结果
Has Consecutive 1s
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短