十六进制转二进制 c++
时间: 2024-11-10 16:26:04 浏览: 4
十六进制转换成二进制通常通过将每个十六进制字符转换为其对应的四位二进制数来完成。在C++中,你可以创建一个映射表来存储这种对应关系,然后遍历十六进制字符串,逐位进行转换。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string hexToBinary(const std::string& hexStr) {
const char* hexChars = "0123456789ABCDEF";
std::string binary;
for (char c : hexStr) {
if (hexChars.find(c) != std::string::npos) {
int decimalValue = hexChars[c] - '0';
if ('A' <= c && c <= 'F') { // 对于大写字母
decimalValue += 10;
}
binary += std::bitset<4>(decimalValue).to_string();
} else {
throw std::invalid_argument("Invalid hexadecimal character");
}
}
return binary;
}
int main() {
try {
std::string hexInput = "1A"; // 十六进制示例
std::string binaryOutput = hexToBinary(hexInput);
std::cout << "Hexadecimal " << hexInput << " in binary is: " << binaryOutput << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,`hexToBinary`函数接受一个十六进制字符串,将其转换为二进制并返回结果。如果输入包含非有效的十六进制字符,它会抛出异常。
阅读全文