Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- string input1="", input2="";
- cout << "Zadejte dve binarni cisla:" << endl;
- cin >> input1;
- cin >> input2;
- //ošetøení vstupu pro neciselne vstupy
- if (cin.fail())
- {
- cout << "Nespravny vstup." << endl;
- return 0;
- }
- //ošetøení vstupu pro input1 cisla
- for (int a=0; a<input1.size(); a++)
- {
- char ch1=input1[a];
- if ((ch1!='0') && (ch1!='1'))
- {
- cout << "Nespravny vstup." << endl;
- return 0;
- }
- }
- //ošetøení vstupu pro input2 cisla
- for (int b=0; b<input2.size(); b++)
- {
- char ch2=input2[b];
- if ((ch2!='0') && (ch2!='1'))
- {
- cout << "Nespravny vstup." << endl;
- return 0;
- }
- }
- //pøevod do desitkove soustavy prvniho cisla
- long long output1 = 0;
- long long weight1 = (1ull << (input1.size() - 1));
- for(int c=0; c < input1.size(); c++) {
- output1 += (input1[c] - '0') * weight1;
- weight1 = weight1 >> 1;
- }
- //pøevod do desitkove soustavy druheho cisla
- long long output2 = 0;
- long long weight2 = (1ull << (input2.size() - 1));
- for(int d=0; d < input2.size(); d++) {
- output2 += (input2[d] - '0') * weight2;
- weight2 = weight2 >> 1;
- }
- //scitame desitkova cisla
- unsigned long long result10=output1+output2;
- //prevod desitkove do binarni
- long long binar = 0;
- long long remainder, i = 1, step = 1;
- while (result10!=0)
- {
- remainder = result10%2;
- result10 /= 2;
- binar += remainder*i;
- i *= 10;
- }
- //vypisujeme vysledek
- cout << "Soucet: " << binar << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment