2015-04-04 80 views
-1

表我必须做出的表中显示1至127转换为二进制和十进制等this的值:试图使该转换十进制到二进制和ASCII C++

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

这是我到目前为止有:

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

可能很多想法。你需要问一个更具体的问题,你有更具体的问题。就目前而言,你基本上只是要求某人完成作业。 – 2015-04-04 04:59:10

回答

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 
    } 
} 

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

+0

更新:我只是假设在这个程序中使用iostream – 2015-04-04 18:43:53

+0

@RyanFasching欢迎[非功能性需求]的世界(http://en.wikipedia.org/wiki/Non-functional_requirement)。 – 2015-04-04 19:35:53

+0

@RyanFasching我编辑了我的文章。虽然我没有发布解决方案,但是我发布了一些提示,以帮助您浏览 – sam 2015-04-04 20:08:46

相关问题