在c ++中有3种按位运算符。它们是按位AND(&),按位OR(|)和按位XOR(^)。
按位与运算符(&)将第一个操作数的每个位与第二个操作数的对应位进行比较。如果两个位都为1,则将相应的结果位设置为1。否则,将相应的结果位设置为0。按位与(AND)运算符的两个操作数必须为整数类型。例如,
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
输出结果
这给出了输出-
0
按位或运算符(|)将第一个操作数的每个位与第二个操作数的对应位进行比较。如果任一位为1,则将相应的结果位设置为1。否则,将相应的结果位设置为0。按位“或”运算符的两个操作数必须为整数类型。例如,
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a | b ) << endl; }
输出结果
这给出了输出-
ffff
按位异或运算符(^)将其第一个操作数的每个位与第二个操作数的对应位进行比较。如果一位是0,另一位是1,则将相应的结果位设置为1。否则,将相应的结果位设置为0。按位异或运算符的两个操作数都必须是整数类型。例如,
#include <iostream> using namespace std; int main() { short a = 0x5555; // pattern 0101 ... unsigned short b = 0xFFFF; // pattern 1111 ... cout << hex << ( a ^ b ) << endl; }
输出结果
这给出了输出-
aaaa
代表图案1010 ...