目的:
了解位或运算符并加深对位或的运用。
定义:
二元运算符,符号为 | ,运用于二进制数中,运用规则简单来说就是有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;