有没有一种简单的方法可以将二进制位集转换为十六进制?该函数将在 CRC 类中使用,并且仅用于标准输出。
我考虑过使用 to_ulong() 将 bitset 转换为整数,然后使用 switch case 将整数 10 - 15 转换为 A - F。但是,我正在寻找更简单的东西。
我在网上找到了这段代码:
#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int main(){
string binary_str("11001111");
bitset<8> set(binary_str);
cout << hex << set.to_ulong() << endl;
}
它工作得很好,但我需要将输出存储在一个变量中,然后将其返回给函数调用,而不是直接将其发送到标准输出。
我试图更改代码,但一直遇到错误。有没有办法更改代码以将十六进制值存储在变量中?或者,如果有更好的方法可以做到这一点,请告诉我。
谢谢你。