首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将二进制字符串转换为整数字符串c++

将二进制字符串转换为整数字符串c++
EN

Stack Overflow用户
提问于 2012-08-21 14:04:38
回答 3查看 9.4K关注 0票数 3

可能重复: Converting string of 1s and 0s into binary value

我希望在c++中将二进制字符串转换为整数字符串。例如:

"000000000010"变成"2"

我有以下约束:不能将此字符串转换为整数类型,然后再将其转换为字符串,因为二进制字符串可能非常大!

我已经尝试用stringstream来完成它,用标志std::stringstream::binary将二进制字符串插入到它,然后使用std::dec标志输出内容,但是它不能工作。

先谢谢大家。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-21 14:14:52

你可以这样做:

  • 创建一个包含"0“的新输出字符串
  • 对于(反向)原始字符串的每个字符:
    • 将结果乘以2(数字乘以数字,注意进位)
    • 如果数字是'1',则向结果中添加1(如上面所示)

  • 反转结果(使用std::reverse)
票数 4
EN

Stack Overflow用户

发布于 2012-08-21 14:08:09

您可以从一个std::bitset构造一个std::string,并使用std::bitset::to_ulongstd::bitset::to_ullong获取一个整数。一定要照顾好孩子,这不是为你做的。

如果需要整数中的字符串,请使用std::to_string

票数 11
EN

Stack Overflow用户

发布于 2012-08-21 14:15:50

从头顶开始,我会从0开始,然后从右到左读取二进制字符串。对于每一位,将累积值乘以2,如果该位是1,则将1加到累加值中。如果累积值大于9,将其除以10,并将其余部分写成字符。这将以相反的顺序给出十进制字符。

不要紧。这不管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12056642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档