Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]Źle działająca funkcja XOR

Ostatnio zmodyfikowano 2015-01-04 16:08
Autor Wiadomość
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.
C/C++
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;



int main() {
    // zamiana dec to bin
    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;
    // zamiana dec to bin
    //operacja XOR
   
    int XOR;
    XOR =( wynikint ^ wynikint1 ) ^ wynikint2;
    cout << endl << "XOR: " << endl << XOR << endl;
   
    // operacja XOR
    return 0;
}

P-124077
kubawal
» 2015-01-04 16:03:31
Przy operacjach bitowych najlepiej uzywać typów unsigned
P-124090
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.
P-124091
« 1 »
  Strona 1 z 1