[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 » |