c_cpp 基本的按位操作

Posted

tags:

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

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

// #BitManipulation #BasicProblem

int AND(int x, int y);
int OR(int x, int y);
int XOR(int x, int y);
int NOT(int x);	// or 1's compliment
int RightShift(int x, int n);
int LeftShift(int x, int n);

int main(){
    int t;
    cin>>t;
    while(t--){
        int x,y;
        cin>>x>>y;
        cout<<x<<" AND "<<y<<": "<<AND(x,y)<<endl;
        cout<<x<<" OR "<<y<<": "<<OR(x,y)<<endl;
        cout<<x<<" XOR "<<y<<": "<<XOR(x,y)<<endl;
        cout<<"LeftShift"<<x<<" : "<<LeftShift(x,1)<<endl;
        cout<<"RightShift"<<y<<" 2 times: "<<RightShift(y,1)<<endl;
        cout<<"LeftShift"<<x<<" 2 times: "<<LeftShift(x,2)<<endl;
    }
    return 0;
}

int AND(int x, int y){
    return x&y;
}
int OR(int x, int y){
    return x|y;
}
int XOR(int x, int y){
    return x^y;
}
int NOT(int x){	// 1's compliment
	return ~x;	// ~(00001100) = 11110011
				// ~12 = -13 most siginificant bits is sign bit
}
int RightShift(int x,int n){
	return x>>n;	// right shifting a number divides it by 2
}
int LeftShift(int x,int n){
	return x<<n;	// left shifting a number multiplies it by 2
}


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

Java的按位操作符

Java的按位操作符

python中的按位与 +按位或+ 按位反+异或运算 +左移+右移

c语言的按位运算符怎么操作!?

优化两个数组的按位与

大位向量的按位运算