c_cpp 位操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 位操作相关的知识,希望对你有一定的参考价值。
/*
https://www.hackerearth.com/notes/bit-manipulation/
*/
#include <iostream>
using namespace std;
bool isPowerOfTwoBit(int x){
return (x && !(x & (x-1)));
}
bool isPowerOfTwo(int x){
if(x==0)
return false;
else{
while(x % 2 == 0)
x /= 2;
return (x==1);
}
}
int main() {
// your code goes here
int i = 8;
if(isPowerOfTwoBit(i))
cout << "Yes" << endl;
else
cout << "No" << endl;
if(isPowerOfTwo(i))
cout << "Yes" << endl;
else
cout << "No" << endl;
return 0;
}
#include <iostream>
using namespace std;
int count_one(int x){
int count = 1;
do{
x /= 2;
count++;
}while(x % 2 != 0);
return count;
}
int count_one_bit(int n){
int count = 0;
while(n){
n = n & (n-1);
count++;
}
return count;
}
int main() {
// your code goes here
int i = 5;
cout << count_one(i) <<endl;
cout << count_one_bit(i) <<endl;
return 0;
}
以上是关于c_cpp 位操作的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 位操作
c_cpp 位操作1
c_cpp 基本的按位操作
c_cpp 第i位的基本位操作
c_cpp 通过位操作获得无符号整数的补码
c_cpp 16位哈希