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位哈希