是否有将二进制位集转换为十六进制的简单方法?该功能将用于CRC类,并仅用于标准输出。将二进制位集转换为十六进制(C++)
我想过使用to_ulong()将bitset转换为整数,然后使用开关大小将整数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;
}
它的伟大工程,但我需要输出存储在一个变量,然后将其返回到函数调用,而不是直接将其发送到标准输出。
我试着改变代码,但仍然遇到错误。有没有办法改变代码来存储十六进制值的变量?或者,如果有更好的方法可以做到这一点,请告诉我。
谢谢。
那么你真的问的是..如何获得一些'无符号long'的十六进制表示为一个字符串? –
我真的只是要求一个相对简单的方法将bitset转换为十六进制值,然后将该值返回给函数调用。 – navig8tr
“我真的只是要求一个比较简单的方法将bitset转换为十六进制值,然后将该值返回给函数调用。”您希望以什么形式返回该十六进制值?不会'std :: string'工作吗?你试过我的回答吗?它做了你想做的事情吗? – dasblinkenlight