文章目录
URL
题目

分析

源码
工程结构
.
└── main_694.c
源码文件
#include <stdio.h>
#include <stdbool.h>
bool has_alternating_bits(int n ){
long a = n ^ (n >> 1);
return (a & (a + 1)) == 0;
}
void print_bits(int n){
for (int i = sizeof(n); i > 0; --i){
printf("%c",((n & (1 << i)) == 0 ? '0' : '1'));
}
printf("\n");
}
int main()
{
int n = 0;
bool ret = true;
const int arr[] = {5,7,11};
for (unsigned int i = 0; i < (unsigned int)( sizeof(arr)/sizeof(arr[0])); ++i){
n = arr[i];
printf("input n = %d , bits = ",n);
print_bits(n);
ret = has_alternating_bits(n);
printf("ret = %s\n\n",ret == true ? "true" : "flase");
}
return 0;
}
LOG参考:
input n = 5 , bits = 0010
ret = true
input n = 7 , bits = 0011
ret = flase
input n = 11 , bits = 0101
ret = flase
源码概述
小结