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位操作符