我想将二进制字符串转换为c ++中的整数字符串。 e.g:
"000000000010"
变为"2"
我有以下约束:我无法将此字符串转换为整数类型,然后再将其转换为字符串,因为该二进制字符串可能非常大!
我已经尝试使用stringstream
执行此操作,使用标记std::stringstream::binary
将二进制字符串插入其中,然后使用std::dec
标记输出内容,但它不会使用{{1}}标记。工作
提前谢谢大家。
答案 0 :(得分:9)
您可以从std::string
构建std::bitset
,并使用std::bitset::to_ulong
或std::bitset::to_ullong
获取整数。一定要照顾字节序,不是为你做的。
如果您需要整数字符串,请使用std::to_string
。
答案 1 :(得分:3)
你可以这样做:
'1'
,请在结果中添加1(如上所述)std::reverse
)答案 2 :(得分:0)
离开我的头顶,我从累计值0开始,从右到左读取二进制字符串。对于每个位,将累加值乘以2,如果该位为1,则将累加值加1。如果累计值大于9,则将其除以10,并将余数写为字符。这将以相反的顺序给出十进制字符。
没关系。这不起作用。