Newsgroup: it.comp.lang.pascal
Titolo: XOR

Ciao a tutti,
qualcuno potrebbe spiegarmi il funzionamento dell'operatore XOR ad esempio
coi numeri?
Il fatto che sia l'OR esclusivo e ke restituisca 0 se entrambe le condizioni
sono uguali, l'ho capito,
ma mi manca ancora qualcosa da digerire!
Ad esempio non capisco come si comporta nel seguente esempio:
Program Prova_XOR;
uses crt;
var  a,b,c : byte;
begin
   clrscr;
   readln(a);
   readln(b);
   c:=a xor b;
   writeln(c);
   readln;
end.
l'unica cosa ke ho capito è ke dà 0 quando i due numeri sono uguali e per il
resto mi dà o la loro somma o la differenza ma con ke logica?
--
ThE DArkNeSS iS JuST DaRK

lo xor su interi lavora bit a bit, quindi mette a 0 i bit uguali in
entrambi gli argomenti... il risultato in effetti non ha un sua logica,
ma " e' "  solo lo xor fra i due numeri :-)
--
Dreadnaut
(Life would be easier if I had the source code)

 ma " e' "  solo lo xor fra i due numeri :-)
Eh,eh,simpatico!
Ma allora quando è ke mi torna utile se non sò ke risultato ottengo se non
lo 0 nel caso di uguaglianza?

 1   xor   1   =  0
Sta storia qua la sò gia!!!
E finkè si tratta di 1 e 0 capisco ma non mi è kiaro xkè, ad ex., XOR fra 8
e 2 mi dia 10, o fra 1 e 7 mi dia 6, o ancora fra 8, 2 e 7 mi dia 13... si
capisce ke il risultato è dato da una serie di somme e/o differenze (8 + 7 -
2 = 13) ma cosa porta proprio ad un dato univoco? Potrebbe essere anke 8 - 7
+2 = 3! Ma xkè questo nn avviene?


 e 2 mi dia 10...
beh.. allora: se usi un integer da quanti bit č formato? 16? boh..
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
quindi
 8=1000
 2=0010
  ~xor~
10=1010
secondo la tabella che ti ha scritto Cooper no?
adesso, non mi ricordo se integer č a 16 bit o cosa,
questo esempio č a 4 bit ma rende l'idea. Capito?
Spero dissě..
Ciauz, Cereal
--
--------------------------------------------------------------
It took the computing power of three C-64s to fly to the Moon.
It takes a 486 to run Windows 95. Something is wrong here.
--------------------------------------------------------------

 Spero dissì..


 ha scritto nel messaggio
news:D0aG8.87002$5k4.1...@twister2.libero.it...

Uff, ma prova ad arrivarci su... un po' di ragionamento non fa mica male :-)
Mo provo io per te....
8 XOR 2 = 10  (dici.... mo vediamo perchè)
8 = 1000
2 = 0010
      ====
      1010  = 10
Ci siamo ora? :-)
Passiamo al prossimo....
1 XOR 7 = 6
1 = 001
7 = 111
      ===
       110 =  6
Semplice no?
Cooper :-)

Grazie x l'aiuto.
Io cmq ragiono, l'unica cosa ke mi era sfuggita e ke quindi non mi ha
permesso di capire tutto da solo era la frase di Dreadnaut "...lavora bit
per bit..." tutto qui!! Se avessi prestato un poka di attenzione in più a
questa frase avrei evitato il tuo commento idiota.  Grazie lo stesso.


 ha scritto nel messaggio
news:gXuG8.607$e5.1...@twister1.libero.it...

Non era mia intenzione offendere qualcuno :-) Se l'ho fatto chiedo venia.
Tuttavia... beh l'importante che hai capito ^_^
Cooper.

Tu no preoccupa! Tutto OK  :-)


ps... sotto, all' 8-5-02, c'e' un thread "Ma la smette di piovere ?"
che potrebbe essere utile :-)


 qualche prova casomai..)
Scusa, ma non dovrebbe essere :
-1 = 1111111111111111??
Ciao
Maurizio


Confermo... in quanto è il complemento a due di 0.
Cooper.

 -1 = 1111111111111111??
infatti "Cereal Killer" non esserendo sicuro scrisse:
"questo non sono sicuro".
Bye, Cereal :)