从十六进制转换为二进制C++

hal*_*i0n 1 c++ binary hex

这种建立在已经问过的问题上 ...但是,在这里,比方说,我给了一个十六进制输入,可能是'0xFFFF'的最大值我需要将它转换为二进制,这样我最终会得到最多16位.

我想知道如果使用'bitset'它会很简单..任何想法?

编辑:

得到答案后,这里有一段即兴的代码:http://pastebin.com/f7a6f0a69

sbi*_*sbi 6

假设"十六进制输入"是指包含十六进制数字的字符串,那么这将起作用:

const char* const str = "0xFFFF";
std::istringstream iss(str);
int i;
iss >> std::hex >> i;
if(!iss && !iss.eof()) throw "dammit!";
std::cout << '"' << str << "\": " << i << "(0x" << std::hex << i << ")\n";
Run Code Online (Sandbox Code Playgroud)

  • @ halluc1nati0n:我建议你在问题写法中更加准确.任何变量实际上都是二进制的,在`iss >> std :: hex >> i`之后,该值实际上是二进制形式.现在,您要求的是转换为表示二进制形式的字符串,这是一个不同的故事.如果你问了相应的问题,我相信你会在第一时间得到结果. (3认同)