Advertisement
Stybyk

Binarna

Nov 10th, 2013
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6.  
  7.  
  8. int main(){
  9.   int zbytek=0;
  10.  
  11.  
  12.  
  13.       string bin1, bin2 , vysledek,beznul;
  14.       cout << "Zadejte dve binarni cisla:" << endl;
  15.       cin >> bin1 >> bin2;
  16.  
  17.  
  18.       if (cin.fail()){
  19.             cout <<"Nespravny vstup." << endl;
  20.             return 0;}
  21.  
  22.       while (bin1.size() != bin2.size())
  23.        {
  24.       if (bin1.size() < bin2.size())
  25.       bin1 = "0" + bin1;
  26.       if (bin1.size() > bin2.size())
  27.      bin2 = "0" + bin2;
  28.        }
  29.  
  30.  
  31.     for (unsigned int i = 0; i<=bin1.size() - 1;i++)
  32.     {
  33.         if (bin1[i] != '1' && bin1[i] != '0')
  34.         {
  35.            cout <<"Nespravny vstup." << endl;
  36.             return 0;
  37.         }
  38.     }
  39.  
  40.  
  41.     for (unsigned int j =0; j<= bin2.size() - 1;j++)
  42.     {
  43.         if (bin2[j] != '1' && bin2[j] != '0')
  44.         {
  45.             cout <<"Nespravny vstup."  << endl;
  46.             return 0;
  47.  
  48.         }
  49.     }
  50.  
  51.  
  52.  
  53.  
  54.     for  (int g = bin1.size() - 1; g >= 0; g--)
  55.  
  56.     {
  57.  
  58.         if((bin1[g]-48)+(bin2[g]-48)+zbytek==3)
  59.         {
  60.         vysledek='1'+ vysledek;
  61.         zbytek=1;
  62.         }
  63.         else
  64.         if((bin1[g]-48)+(bin2[g]-48)+zbytek==2)
  65.         {
  66.         vysledek='0'+ vysledek;
  67.         zbytek=1;
  68.         }
  69.         else
  70.         if((bin1[g]-48)+(bin2[g]-48)+zbytek==1)
  71.         {
  72.         vysledek='1'+ vysledek;
  73.         zbytek=0;
  74.         }
  75.         else
  76.         if((bin1[g]-48)+(bin2[g]-48)+zbytek==0)
  77.         {
  78.         vysledek='0' + vysledek;
  79.         zbytek=0;
  80.         }
  81.  
  82.     }
  83.     if  (zbytek == 1)  { vysledek = '1' + vysledek; }
  84.  
  85.      cout << "Soucet: ";
  86.  
  87.  
  88.     int i = 0;
  89.     for (; i < (int)vysledek.size() - 1; i++ )
  90.     {
  91.      if ( vysledek[i] == '1') break;
  92.     }
  93.  
  94.     beznul = vysledek.substr(i);
  95.  
  96.     cout << beznul << endl;
  97.  
  98. return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement