C++将十进制数输入,输出转换后的八位二进制数
时间: 2024-09-21 17:01:48 浏览: 44
十六进制取补码转十进制
在C++中,你可以使用内置的库函数`bitset`或者手动编写循环来完成十进制数到八位二进制数的转换。以下是两个例子:
1. **使用`bitset`**:
```cpp
#include <bitset>
#include <iostream>
int main() {
int decimal_num;
std::cout << "Enter a decimal number: ";
std::cin >> decimal_num;
// 创建一个8位的bitset
std::bitset<8> binary(decimal_num);
// 输出二进制数,不足8位会自动补0
std::cout << "Binary representation (8-bit): " << binary << std::endl;
return 0;
}
```
如果你想要限制输出到8位,可以使用`std::setw`控制输出宽度:
```cpp
std::cout << std::setfill('0') << std::setw(8) << binary.to_string();
```
2. **手动转换**:
```cpp
#include <iostream>
int main() {
int decimal_num;
std::cout << "Enter a decimal number: ";
std::cin >> decimal_num;
std::string binary = "";
while (decimal_num > 0) {
binary = std::to_string(decimal_num % 2) + binary;
decimal_num /= 2;
}
// 添加前导0,如果不足8位
if (binary.length() < 8) {
for (size_t i = binary.length(); i < 8; ++i)
binary = '0' + binary;
}
std::cout << "Binary representation (8-bit): " << binary << std::endl;
return 0;
}
```
在这两个例子中,用户输入的十进制数会被转换成八位二进制数,不够8位则在前面添加0填充。
阅读全文