2015-04-04 84 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