【问题标题】:How to count in binary in base 10 [closed]如何以 10 为底数以二进制计数 [关闭]
【发布时间】:2018-07-12 00:33:23
【问题描述】:

我希望 C++ 中的整数以二进制形式向上计数,例如: 1、10、11、100、101、110、111 但我希望值以 10 为底,例如: 一、十、十一、一百、一百零一等 基本上以十进制计数,但看起来像以 10 为底。 有没有算法可以做到这一点。

-约瑟夫

【问题讨论】:

  • 是的,我找不到路
  • 可能是个愚蠢的问题,但是:为什么你会想做这样的事情?
  • 我今天有一个数学挑战,有一个问题是 72 中只有 1 和 0 的最小倍数是多少
  • 预付 100 英镑即可完成
  • @Joseph EdHeal 的原始评论是讽刺的。 Stack Overflow 社区不会为您编写代码。

标签: c++ algorithm binary decimal


【解决方案1】:

当然是可以解决的,但这不是一个代码编写服务,所以我只会给你一些想法,应该足以帮助你自己编写这个。

所以你应该这样做:

  • 对二进制值使用字符串来显示它
  • 您应该实现一个循环,该循环将在您的数字达到 0 时结束,并且应该将 currentValue % 2 的结果写入字符串的开头,然后将您的数字除以 2
  • 您应该实现一个函数,该函数将返回人性化可读的数字文本,您可能想从here 中获得灵感,但线索是数字 % 3 是相关的。如果它是 0,那么如果左边的数字恰好不是 1,那么您将需要写入该数字,因此 11-19 之间的值在这里是一个例外,不要忘记千、百万、十亿,如果模数为 1,那么您将有一个特殊的文本,例如 11、... 19、20、...、90,如果模数为 2,那么文本将是数字 +“百”

您基本上将拥有一个数字,并且能够从中获取二进制文件以及文本表示形式。

编辑:算法不需要字符串,也可以计算出std::bitset

【讨论】:

  • 好的,谢谢我试试
  • 不需要使用字符串表示顺便说一句。
  • @Jarod42 没错,我已经相应地编辑了我的答案。
猜你喜欢
  • 2022-12-07
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 2011-12-26
  • 2012-03-14
  • 1970-01-01
相关资源
最近更新 更多