[C++]Źle działająca funkcja XOR
Ostatnio zmodyfikowano 2015-01-04 16:08
Soutaichou Temat założony przez niniejszego użytkownika  | 
[C++]Źle działająca funkcja XOR » 2015-01-04 15:14:10 Witam, otóż chcę napisać program, który szyfruje plik za pomocą funkcji XOR. Program kompiluje się i działa na pewnych wartościach wpisywanych tj. dla cyfr 6,7,8 program dziala bez problemu, a gdy wpisuję liczby 10, 50, 200 to program nie podaje prawidłowej wartości po operacji. #include <iostream> #include <cstring> #include <cstdlib> using namespace std;
 
 
  int main() {          int liczba;     string wynik;          cout << "Podaj liczbe" << endl;     cin >> liczba;     cout << endl << "Po konwersji: " << endl;               while( liczba )     {         wynik =( liczba % 2 ? "1": "0" ) + wynik;         liczba /= 2;     };          int wynikint = atoi( wynik.c_str() );     cout << wynikint << endl;          int liczba1;     string wynik1;          cout << "Podaj liczbe" << endl;     cin >> liczba1;     cout << endl << "Po konwersji: " << endl;               while( liczba1 )     {         wynik1 =( liczba1 % 2 ? "1": "0" ) + wynik1;         liczba1 /= 2;     };               int wynikint1 = atoi( wynik1.c_str() );     cout << wynikint1 << endl;               int liczba2;     string wynik2;          cout << "Podaj liczbe" << endl;     cin >> liczba2;     cout << endl << "Po konwersji: " << endl;               while( liczba2 )     {         wynik2 =( liczba2 % 2 ? "1": "0" ) + wynik2;         liczba2 /= 2;     };               int wynikint2 = atoi( wynik2.c_str() );     cout << wynikint2 << endl;                    int XOR;     XOR =( wynikint ^ wynikint1 ) ^ wynikint2;     cout << endl << "XOR: " << endl << XOR << endl;               return 0; }  | 
 | 
kubawal  | 
» 2015-01-04 16:03:31 Przy operacjach bitowych najlepiej uzywać typów unsigned  | 
 | 
Soutaichou Temat założony przez niniejszego użytkownika  | 
  » 2015-01-04 16:08:29 Dziękuję za radę, jednak tutaj to nic nie zmieniło.  | 
 | 
|  « 1 »  |