如何进行二进制10进制,16进制的转换
时间: 2024-09-28 11:15:02 浏览: 41
在C++中,你可以使用内置的库函数来进行二进制、十进制和十六进制之间的转换。以下是一些基本的方法:
### 从二进制转到十进制
```cpp
#include <bitset>
int binary_to_decimal(int binary) {
std::bitset<32> bits(binary);
return bits.to_ulong();
}
```
这里,`std::bitset` 是用来处理位表示的类型,它的 `to_ulong()` 函数会将二进制转换为无符号长整型(ulong)。
### 从十进制转到二进制
```cpp
#include <bitset>
std::string decimal_to_binary(int decimal) {
std::ostringstream oss;
oss << std::bitset<32>(decimal); // 最大32位取决于你的计算机配置
return oss.str();
}
```
`std::ostringstream` 是一个可插入流,用于构建字符串,`std::bitset<32>` 创建了一个32位的二进制串。
### 从十六进制转到十进制
```cpp
#include <sstream>
int hex_to_decimal(std::string hex_string) {
int decimal = 0;
for (char c : hex_string) {
if ('0' <= c && c <= '9') {
decimal = decimal * 16 + (c - '0');
} else if ('A' <= c && c <= 'F') {
decimal = decimal * 16 + (c - 'A' + 10);
} else if ('a' <= c && c <= 'f') {
decimal = decimal * 16 + (c - 'a' + 10);
}
}
return decimal;
}
```
这段代码逐个字符解析十六进制字符串并累加对应的数值。
### 从十进制转到十六进制
```cpp
#include <sstream>
std::string decimal_to_hex(int decimal) {
std::stringstream ss;
ss << std::hex << decimal; // 使用std::hex标志来输出十六进制
return ss.str();
}
```
`std::hex` 标志会让 `<<` 操作符输出十六进制。
阅读全文