C++位运算十进制转换二进
时间: 2024-09-07 08:03:36 浏览: 64
在C++中,位运算可以用来进行十进制与二进制之间的转换。以下是一个简单的例子,说明如何使用位运算实现十进制数到二进制的转换。
首先,我们将十进制数转换为二进制,可以通过不断除以2并取余数的方式来完成,但在计算机中,我们通常使用位移运算符(<< 和 >>)来进行更高效的转换。以下是使用位运算实现十进制转二进制的方法:
```cpp
#include <iostream>
#include <bitset>
void printBinary(unsigned int num) {
unsigned int mask = 1 << (sizeof(num) * 8 - 1); // 创建一个掩码,最高位为1,其余位为0
for (int i = 0; i < sizeof(num) * 8; ++i) {
std::cout << ((num & mask) ? '1' : '0'); // 检查最高位是否为1
mask >>= 1; // 将掩码右移一位
}
std::cout << std::endl;
}
int main() {
unsigned int num = 9; // 十进制数9转换为二进制
printBinary(num); // 输出 1001
return 0;
}
```
在这个例子中,我们定义了一个`printBinary`函数,它接受一个无符号整数作为参数,并打印出其二进制表示。我们使用了`&`运算符来检查最高位是否为1,并使用右移运算符`>>=`来逐步检查每一位。
阅读全文