位操作的原理

来源:互联网 发布:mac 桌面文件太多 编辑:程序博客网 时间:2024/06/06 15:47

在C语言中运算最快的应该就是对数据进行位操作了,位操作有很多,如位移、位与、位或、位异或,下面我们就来看看那这些操作的实现,在这里要提醒大家的是位的操作不会改变数据本身,只有当你让初始化后的变量等于它本身的位操作后变量值才会改变,那么下面我们就来看看那这些位操作的实现过程:

#include<iostream>using namespace std;/*1、位移,位移有左移和右移两种,位移操作符为<<和>>,分别是左移操作符和右移操作符,左移的时候就是把数据的二进制位的每位向左移一定的位,移动过的低位用0补齐;右移同理,移动过的高位用0补齐用0补齐称为逻辑右移,有的系统用1补齐,称为算术右移;注意整形的符号位,位移会出现溢出现象。*/void Move_left(int x){    cout<<"    "<<"Move_left:>"<<(x << 4)<<endl;}void Move_right(int x){    cout<<"    "<<"Move_right:>"<<(x >> 4)<<endl;}//2、位与运算,和数学中的与操作一样,相同为真,相异为假,运算符:& void Bitwise_AND(int x, int y){    cout<<"    "<<(x & y)<<endl;}//3、位或,运算符:|, 只有在0|0的时候是0,其他都是1;void Bitwise_OR(a , b){    cout<<"    "<<(x | y)<<endl;}//4、位异或,运算符: ^,0^1= 1^0=1; 1^1 = 0^0 = 0;void Bitwise_XOR(a , b){    cout<<"    "<<(x ^ y)<<endl;}int main(){    int a = 10;//二进制1010    int b = 14;//二进制1110    Move_left(a);    Move_right(a);    cout<<a<<"和"<<b<<"的位与操作:>"    Bitwise_AND(a, b);    cout<<a<<"和"<<b<<"的位或操作:>"    Bitwise_OR(a , b);    cout<<a<<"和"<<b<<"的位异或操作:>"    Bitwise_XOR(a , b);    return 0;}

大家有什么新的认识欢迎留言讨论,相互进步^o^

1 0
原创粉丝点击