【问题标题】:Trying to make a table that converts decimal to binary and ASCII C++试图制作一个将十进制转换为二进制和 ASCII C++ 的表
【发布时间】:2015-06-09 04:07:57
【问题描述】:

我必须制作一个表格,显示从 1 到 127 转换为二进制和十进制的值,例如 this

十六进制和八进制是可选的。

这是我目前所拥有的:

    using namespace std;

int main()  {
    int dec;
    int binary_array [128];

    for (dec = 0; dec<128; dec++){

for (int I =0; I < 7; i++){

    binary_array[i]= dec % 2;
    cout<<binary_array[i];
    dec = dec / 2;
    }
  }
}

【问题讨论】:

  • 可能有很多想法。您需要就您遇到的更具体的问题提出更具体的问题。就目前而言,您基本上只是要求某人完成您的作业。

标签: c++ binary hex decimal octal


【解决方案1】:

您可以使用bitset将十进制转换为二进制,然后打印出来。

#include <iostream>
#include <bitset>
using namespace std;

int main() {

    for(int i = 0; i <= 127; i++)
    {
        cout << i << " " << bitset<8>(i) << endl;
    }

    return 0;
}

编辑:

既然使用bitset 不是一个选项,让我们剖析你的代码并了解它有什么问题。

using namespace std;

int main()  
{
    int dec;
    int binary_array [128];

    for (dec = 0; dec<128; dec++)
    {
        for (int I =0; I < 7; i++)
        {
            binary_array[i]= dec % 2;    <--OK
            cout<<binary_array[i];       <-- NOT OK, think carefully 
            dec = dec / 2;               <-- OK  
        }
    //now you have exited for loop, what is the value of dec?
    //think what happened to dec in the second for loop
    //your current logic will create a infinite loop
    }
}

您的逻辑走在正确的道路上,如果您仔细考虑,您将能够自己去做并且感觉良好,而不是复制可用的解决方案而不试图了解哪里出了问题。我建议你努力思考并实施。如果仍然无法解决,请随时发布更新的代码并告诉我们。

【讨论】:

  • @RyanFasching 欢迎来到non-functional requirements 的世界。
  • @RyanFasching 我编辑了我的帖子。虽然我没有发布解决方案,但我发布了帮助您导航的提示
  • @sam2090 二进制 _array[i] 应该在 for 循环之外吗?
  • @RyanFasching 是的,它应该在内部 for 循环之外打印出这些位。但是,您仍然需要将这些位存储在内部 for 循环中。当你执行 mod 操作时,想想存储在什么索引中的位。
  • @sam2090 它们存储在长度为 128 的数组中,对吗?当我将 cout
猜你喜欢
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 2016-10-02
  • 2012-06-26
  • 2019-02-03
  • 1970-01-01
  • 2019-11-29
相关资源
最近更新 更多