可能重复:
将 1 和 0 的字符串转换为二进制值
我想在 C++ 中将二进制字符串转换为整数字符串。例如:
"000000000010"
变成"2"
我有以下约束:我不能将此字符串转换为整数类型,然后再将其转换为字符串,因为该二进制字符串可能非常大!
我已经尝试用 来做,用stringstream
标志将二进制字符串插入它,std::stringstream::binary
然后使用std::dec
标志输出内容,但它不起作用
谢谢大家。
可能重复:
将 1 和 0 的字符串转换为二进制值
我想在 C++ 中将二进制字符串转换为整数字符串。例如:
"000000000010"
变成"2"
我有以下约束:我不能将此字符串转换为整数类型,然后再将其转换为字符串,因为该二进制字符串可能非常大!
我已经尝试用 来做,用stringstream
标志将二进制字符串插入它,std::stringstream::binary
然后使用std::dec
标志输出内容,但它不起作用
谢谢大家。
您可以std::bitset
从 a构造 a std::string
,并使用std::bitset::to_ulong
orstd::bitset::to_ullong
来获取整数。一定要注意字节顺序,它不是为你做的。
如果您需要整数中的字符串,请使用std::to_string
.
你可以这样做:
'1'
,则在结果中加 1(如上)std::reverse
)在我的脑海中,我将从累加值 0 开始,从右到左读取二进制字符串。对于每个位,将累加值乘以 2,如果该位为 1,则将累加值加 1。如果累加值大于 9,则将其除以 10,并将余数作为字符写出。这将以相反的顺序给出十进制字符。
没关系。这行不通。