下面是使用不同大小数据类型进行位操作的代码示例:
#include
int main() {
int a = 5; // 二进制表示为 0000 0101
int b = 3; // 二进制表示为 0000 0011
// 位与操作
int result = a & b; // 0000 0001,结果为 1
std::cout << "Bitwise AND: " << result << std::endl;
// 位或操作
result = a | b; // 0000 0111,结果为 7
std::cout << "Bitwise OR: " << result << std::endl;
// 位异或操作
result = a ^ b; // 0000 0110,结果为 6
std::cout << "Bitwise XOR: " << result << std::endl;
// 左移操作
result = a << 2; // 0001 0100,结果为 20
std::cout << "Left shift: " << result << std::endl;
// 右移操作
result = a >> 1; // 0000 0010,结果为 2
std::cout << "Right shift: " << result << std::endl;
return 0;
}
#include
int main() {
unsigned int a = 5; // 二进制表示为 0000 0101
unsigned int b = 3; // 二进制表示为 0000 0011
// 位与操作
unsigned int result = a & b; // 0000 0001,结果为 1
std::cout << "Bitwise AND: " << result << std::endl;
// 位或操作
result = a | b; // 0000 0111,结果为 7
std::cout << "Bitwise OR: " << result << std::endl;
// 位异或操作
result = a ^ b; // 0000 0110,结果为 6
std::cout << "Bitwise XOR: " << result << std::endl;
// 左移操作
result = a << 2; // 0001 0100,结果为 20
std::cout << "Left shift: " << result << std::endl;
// 右移操作
result = a >> 1; // 0000 0010,结果为 2
std::cout << "Right shift: " << result << std::endl;
return 0;
}
#include
int main() {
unsigned char a = 5; // 二进制表示为 0000 0101
unsigned char b = 3; // 二进制表示为 0000 0011
// 位与操作
unsigned char result = a & b; // 0000 0001,结果为 1
std::cout << "Bitwise AND: " << (int)result << std::endl;
// 位或操作
result = a | b; // 0000 0111,结果为 7
std::cout << "Bitwise OR: " << (int)result << std::endl;
// 位异或操作
result = a ^ b; // 0000 0110,结果为 6
std::cout << "Bitwise XOR: " << (int)result << std::endl;
// 左移操作
result = a << 2; // 0010 1000,结果为 40
std::cout << "Left shift: " << (int)result << std::endl;
// 右移操作
result = a >> 1; // 0000 0010,结果为 2
std::cout << "Right shift: " << (int)result << std::endl;
return 0;
}
以上代码示例展示了在不同大小的数据类型上进行位操作的方法。需要注意的是,左移和右移操作只适用于整型数据类型
上一篇:不同大小矢量的排列