C++__位运算符:位或运算符|

目的:

        了解位或运算符并加深对位或的运用。

定义:

        二元运算符,符号为 ,运用于二进制数中,运用规则简单来说就是有1即1。

应用:

1、设置标记位

将二进制数中某位0变为1。

方法:|(或)一个该位为1,其它位为0的二进制数。

    int a = 0b1011;//11
	int b = 0b0100;//4
	//a|b = 0b1111;15
	cout << (a | b) << endl;

2、置空标记位

将二进制中某位置为0。

方法:|(或)一个该位为1其它位为0的二进制数,再减去该数。置空标记位分为两种一种是置空为为1,一种为置空为0
    为1时直接用该二进制数减去所设二进制数就行
    为0时需要将该位先转化为1,再置空为0,就需要先或所设二进制数,再减去减去所设二进制数就行。

//1、
int a=0b1011101;
//置空末尾第四位
int b=0b0001000;
//a|b=0b1011101;
//   -0b0001000
//    0b1010101
//(a|b)-b=0b1010101
cout<<((a|b)-b)<<endl;
//2、
int a=0b1010011;
//置空末尾第四位
int b=    0b0001000;
//a|b=    0b1011011;
//(a|b)-b=0b1010011;
cout<<((a|b)-b)<<endl;

3、末尾连续n位0变为1

将二进制数后n位连续的0变位1。

方法:先将该数减去1,再 |(或)原来的数。

int e =   0b10010000;
//e-1=	  0b10001111;
//e|(e-1)=0b10011111;159
cout << ((e - 1) | e) << endl;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值