试图创建一个将十进制转换为二进制和ASCII C ++的表

时间:2015-04-04 04:50:36

标签: c++ binary hex decimal octal

我必须创建一个表,显示值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;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用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
    }
}

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