十六进制转8位二进制 c++
时间: 2024-11-10 07:26:04 浏览: 10
十六进制转换成八位二进制在C++中可以使用`bitset`类或者直接手动转换每一位。这里是一个简单的例子:
```cpp
#include <iostream>
#include <bitset>
// 使用bitset转换十六进制到二进制
std::string hex_to_binary(const std::string& hex_str) {
std::bitset<8> binary;
for (size_t i = 0; i < hex_str.length(); i++) {
char hex_char = hex_str[i];
if (isxdigit(hex_char)) { // 检查字符是否是十六进制
int digit = hex_char - '0'; // '0' 到 '9'
if ('a' <= hex_char && hex_char <= 'f') { // 大写字母A-F的情况
digit += 10;
}
binary.set(i*4, static_cast<unsigned>(digit)); // 设置四位二进制对应一位十六进制
} else if (hex_char >= 'A' && hex_char <= 'F') { // 小写字母a-f的情况
digit += 10;
binary.set(i*4 + 4, static_cast<unsigned>(digit));
}
}
return binary.to_string();
}
int main() {
std::string hex = "1A"; // 示例十六进制字符串
std::cout << "Hex: " << hex << "\n";
std::cout << "Binary: " << hex_to_binary(hex) << "\n";
return 0;
}
```
运行上述代码会将十六进制字符串"1A"转换为八位二进制。
阅读全文