2016-05-27 10 views
-4

こんにちは私は通常の10年のニュージャーをバイナリに符号化する最終的な学校プロジェクトのための簡単なプログラムを作りました。2から7までの数字のバイナリコード

#include <iostream> 
#include <cstdlib> 
#include <fstream> 
using namespace std; 
int main() { 
    int n; 
cout<<"-------------------------KODER/DEKODER-------------------------"<<endl; 
ofstream Info; 
Info.open("Info.txt"); 
Info<<"KODER_DEKODER verzija 1.0.0\nOvaj program je napisan kako bi se brzo dekadni broj pretvorio u binarni i obrnuto bez previse razmisljanja"<<endl; 
Info.close(); 
cout<<"NAPOMENA: Uneseni brojevi i binarne kombinacije moraju biti izmedu brojeva 0 i 15"<<endl; 
cout<<"Unesite 1 ako zelite kodirati dekadni broj u binarni, a ako zelite dekodirtai binarni broj u dekadni unesite broj 2"<<endl; 
cin>>n; 
    int d,b; 
    if (n==1){ 
     cout<<"Unesite dekadni broj koji zelite kodirati u binarni"<<endl; 
     cin>>d; 
    if (d==0){ 
    cout<<"Vas kodirani dekadni broj glasi 0000"<<endl; 
}else if (d==1){ 
    cout<<"Vas kodirani dekadni broj glasi 0001"<<endl; 
    }else if (d==2){ 
    cout<<"Vas kodirani dekadni broj glasi 0010"<<endl; 
    }else if (d==3){ 
    cout<<"Vas kodirani dekadni broj glasi 0011"<<endl; 
    }else if (d==4){ 
    cout<<"Vas kodirani dekadni broj glasi 0100"<<endl; 
    }else if(d==5){ 
    cout<<"Vas kodirani dekadni broj glasi 0101"<<endl; 
    }else if (d==6){ 
    cout<<"Vas kodirani dekadni broj glasi 0110"<<endl; 
    }else if (d==7){ 
    cout<<"Vas kodirani dekadni broj glasi 0111"<<endl; 
    }else if (d==8){ 
    cout<<"Vas kodirani dekadni broj glasi 1000"<<endl; 
    }else if (d==9){ 
    cout<<"Vas kodirani dekadni broj glasi 1001"<<endl; 
    }else if(d==10){ 
    cout<<"Vas kodirani dekadni broj glasi 1010"<<endl; 
    }else if (d==11){ 
    cout<<"Vas kodirani dekadni broj glasi 1011"<<endl; 
    }else if(d==12){ 
    cout<<"Vas kodirani dekadni broj glasi 1100"<<endl; 
    }else if(d==13){ 
    cout<<"Vas kodirani dekadni broj glasi 1101"<<endl; 
    }else if(d==14){ 
    cout<<"Vas kodirani dekadni broj glasi 1110"<<endl; 
    }else if(d==15){ 
    cout<<"Vas kodirani dekadni broj glasi 1111"<<endl; 
    } 
    else { 
     cout<<"Unesi broj izmedu 0 i 15"<<endl; 
     return main(); 
    } 
     } 
    else if (n==2) { 
     cout<<"Unesite binarni broj koji zelite pretvoriti u dekadni"<<endl; 
     cin>>b; 
     if (b==0000) { 
cout<<"Vasa binarna kombinacija daje broj 0"<<endl; 
} else if (b==0001) { 
cout<<"Vasa binarna kombinacija daje broj 1"<<endl; 
} else if (b==0010) { 
cout<<"Vasa binarna kombinacija daje broj 2"<<endl; 
} else if (b==0011) { 
cout<<"Vasa binarna kombinacija daje broj 3"<<endl; 
} else if (b==0100) { 
cout<<"Vasa binarna kombinacija daje broj 4"<<endl; 
} else if (b==0101) { 
cout<<"Vasa binarna kombinacija daje broj 5"<<endl; 
} else if (b==0110) { 
cout<<"Vasa binarna kombinacija daje broj 6"<<endl; 
} else if (b==0111) { 
cout<<"Vasa binarna kombinacija daje broj 7"<<endl; 
} else if (b==1000) { 
cout<<"Vasa binarna kombinacija daje broj 8"<<endl; 
} else if (b==1001) { 
cout<<"Vasa binarna kombinacija daje broj 9"<<endl; 
} else if (b==1010) { 
cout<<"Vasa binarna kombinacija daje broj 10"<<endl; 
} else if (b==1011) { 
cout<<"Vasa binarna kombinacija daje broj 11"<<endl; 
} else if (b==1100) { 
cout<<"Vasa binarna kombinacija daje broj 12"<<endl; 
} else if (b==1101) { 
cout<<"Vasa binarna kombinacija daje broj 13"<<endl; 
} else if (b==1110) { 
cout<<"Vasa binarna kombinacija daje broj 14"<<endl; 
} else if (b==1111) { 
cout<<"Vasa binarna kombinacija daje broj 15"<<endl; 
} 
else{ 
    cout<<" Unesi pravilnu binarnu kombinaciju"<<endl; 
    return main();} 
    } 
     else { 
    cout<<"UNESITE 1 ZA KODIRANJE ILI 2 ZA DEKODIRANJE"<<endl; 
    return main();} 
system("pause"); 
return 0;} 
+0

こんにちは。何が間違っているかを素早く確認するためのコードを短縮できますか?ここでその心が壊れている。 –

+3

あなたのコードを英語に翻訳し、他の人が簡単に答えられるように努力してください(***あなたがここに来て助けを求めていることを覚えておいてください)。また、[MCVE]を作成して、あなたのコードに何が問題になっているのかを正確に説明してください。 –

+0

無限の条件文と特殊な場合を使うよりも、基底を変換する方がはるかに良い方法があります。この方法では、32ビット整数をサポートするようにプログラムを拡張すると、各方向に40億以上のケースが必要になり、ソースファイルは数ギガバイトにもなります。 – molbdnilo

答えて

0
 cin>>b; 
    if (b==0000) { 
     cout<<"Vasa binarna kombinacija daje broj 0"<<endl; 
     } else if (b==0001) { 
     .... 

:あなた文句を言わない2〜7 C++からの数字の入力のバイナリコードはこれが私のコードである(そのクロアチアのが、テキストは重要ではありません)彼らに を認識する際に問題がバイナリ一部であり、あなたが見ますので、これは働いていない理由があるなど

1

をあなたはここでバイナリに入力する番号をしようとしていて、intとしてbを宣言した。あなたはstringとしてbを宣言してから0000などの異なる値でbを比較したい場合がありますのt彼は0をリードしている。 00000111は、8進数(8進数)の値です。 0010が8で、0100が64であるなど、読んでいる基本10の値とは明らかに一致しません。

先頭にある0を削除するにはGaurav Sehgalが代わりに文字列で示唆し、読んだように。

関連する問題