我希望在c++中将二进制字符串转换为整数字符串。例如:
"000000000010"
变成"2"
我有以下约束:不能将此字符串转换为整数类型,然后再将其转换为字符串,因为二进制字符串可能非常大!
我已经尝试用stringstream
来完成它,用标志std::stringstream::binary
将二进制字符串插入到它,然后使用std::dec
标志输出内容,但是它不能工作。
先谢谢大家。
发布于 2012-08-21 14:14:52
你可以这样做:
'1'
,则向结果中添加1(如上面所示)
std::reverse
)发布于 2012-08-21 14:08:09
您可以从一个std::bitset
构造一个std::string
,并使用std::bitset::to_ulong
或std::bitset::to_ullong
获取一个整数。一定要照顾好孩子,这不是为你做的。
如果需要整数中的字符串,请使用std::to_string
。
发布于 2012-08-21 14:15:50
从头顶开始,我会从0开始,然后从右到左读取二进制字符串。对于每一位,将累积值乘以2,如果该位是1,则将1加到累加值中。如果累积值大于9,将其除以10,并将其余部分写成字符。这将以相反的顺序给出十进制字符。
不要紧。这不管用。
https://stackoverflow.com/questions/12056642
复制相似问题