这可能是一个简单的问题,但我仍然堆积在它上面。
我有字符串变量number = 11111111111111111111111111111110
,十进制是4294967294
。
我无法使用atoi
因为它的值绕过了int值。我还尝试了istringstream
和strtoul
,但两者都给出了不准确的结果。
我在这里缺少什么?
答案 0 :(得分:1)
strtoul
接受定义基数的第三个参数。将基数设为2
unsigned long parsedValue;
std::string binaryNumber("11111111111111111111111111111110");
parsedValue= strtoul(binaryNumber.c_str(), NULL, 2);
http://www.cplusplus.com/reference/cstdlib/strtoul/?kw=strtoul