Java - PROBLEM s XOR-om

Programovacie jazyky, rady, poradňa...
psimi
Novice
Novice
Príspevky: 3
Registrovaný: 25 sep 2007, 19:54

Java - PROBLEM s XOR-om

Príspevok od používateľa psimi »

Zdravim,

tento kus kodu:

Kód: Vybrať všetko

    int x = 10;
    int y = 20;
    x ^= y ^= x ^= y;
    System.out.println(x);
    System.out.println(y);
Vypíše:
0
10

Vedeli by ste mi vysvetliť prečo? Ako funguje ten XOR pri int-och, najprv sa to prevedie do 2-kovej sustavy alebo ako? Neviem si to vobec predstavit.

Kazda rada pomoze.
Dakujem
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Java - PROBLEM s XOR-om

Príspevok od používateľa audiotrack »

a máš aj nejakú otázku?
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: Java - PROBLEM s XOR-om

Príspevok od používateľa javatar »

no je to jednoduche
kedze XOR je vie pracovat len s dvoma stavmi tak sa zoberu binarne reprezentacie cisel a pri zapise x ^= y ^= x ^= y; ides smerom sprava dolava

cize prve spravi
x ^= y kde x = 10 a y 20
x = 01010 = 10
y = 10100 = 20
^= 11110 = 30

dalej spravi y^=x kde x=30 a y 20
x = 11110
y = 10100
^= 01010 = 10

no a ako vidis teraz sa x a y rovna takze poslednz krok x^=y vrati 0 pricom y uz nemenis cize vysledne honoty su tie ktore ti vypisalo

neake otazky?
Napísať odpoveď