c_cpp 第i位的基本位操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 第i位的基本位操作相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>
using namespace std;

// https://www.youtube.com/watch?v=NLKQEOgBAnw
/* Test Case:
	00101100
	5th bit from right=1
	00100000
	11011111
*/

int get_ith_bit(long x,int i);
void set_ith_bit(long &x,int i);
void clear_ith_bit(long &x,int i);

int main(){
	long bin;
	cin>>bin;
	int i;
	cin>>i;	// ith bit
	cout<<get_ith_bit(bin,i)<<endl;
	cin>>i;
	clear_ith_bit(bin,i);
	cout<<bin<<endl;
	cin>>i;
	set_ith_bit(bin,i);
	cout<<bin<<endl;
	return 0;
}

int get_ith_bit(long x,int i){
	long y=1;
	y=y<<i;
	if(x&y==0){
		return 0;
	}else{
		return 1;
	}
}
void set_ith_bit(long &x,int i){
	long y=1;
	y=y<<i;
	x=x|y;
}
void clear_ith_bit(long &x,int i){
	long y=1;
	y=y<<i;
	y=(~y);
	x=x&y;
}

以上是关于c_cpp 第i位的基本位操作的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 基本的按位操作

如何查看mac多少位的操作系统?

Linux 用户与组的基本操作及文件权限位的设置方法

如何使用位掩码来允许/禁止某些位的操作

浅谈JavaScript位操作符

JavaScriptJavaScript位操作符