c++十进制转2进制
时间: 2024-10-19 19:15:12 浏览: 29
在C++中,将十进制整数转换为二进制可以使用内置的`bitset`库或者手动通过位运算实现。以下是两种简单的方法:
1. 使用`bitset`库:
```cpp
#include <bitset>
int decimalToBinary(int decimal) {
std::bitset<32> binary(decimal); // 通常最多32位,若超过则需要自定义宽度
return binary.to_string();
}
```
这里,`to_string()`函数会返回一个字符串表示的二进制数。
2. 手动位运算法:
```cpp
#include <iostream>
#include <string>
std::string decimalToBinary(int decimal) {
std::string result = "";
while (decimal > 0) {
result = std::to_string(decimal % 2) + result;
decimal /= 2;
}
return result;
}
```
这个方法通过不断取余数并将结果添加到前面,直到被除数为0,实现了从右向左的二进制转换。
相关问题
c++十进制转十六进制
你可以使用C++中的 `std::hex` 标志来将十进制数转换为十六进制数。以下是一个简单的示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
int decimal = 123;
cout << "Decimal: " << decimal << endl;
cout << "Hexadecimal: ";
cout << std::hex << decimal << endl;
return 0;
}
```
输出结果为:
```
Decimal: 123
Hexadecimal: 7b
```
在上面的代码中,我们将十进制数 `123` 转换为十六进制数,并使用 `std::hex` 标志输出十六进制数。
c++十进制转八进制
在 C++ 中,将十进制整数转换为八进制可以使用内置的 `std::oct` 转换操纵符。你可以创建一个临时字符串来存储八进制表示,或者直接通过 `std::bitset` 类来进行转换。下面是一个简单的示例:
```cpp
#include <iostream>
#include <bitset>
int main() {
int decimal_number = 123; // 十进制数字
std::string octal_string = std::to_string(std::oct(decimal_number)); // 使用 std::to_string 和 std::oct
std::cout << "十进制 " << decimal_number << " 的八进制形式是: " << octal_string << "\n";
// 或者使用 bitset 直接转换
std::bitset<8> binary_octal(decimal_number);
std::cout << "八进制值: " << binary_octal.to_itoa(0) << "\n"; // to_itoa 函数会返回一个字符串
return 0;
}
```
当你运行这个程序时,它会输出类似这样的结果:
```
十进制 123 的八进制形式是: 173
八进制值: 173
```
阅读全文