位操作的原理

9 篇文章 0 订阅

在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值