Newsgroup: it.comp.programmare
Titolo: OR ESCLUSIVO

Salve a tutti,
devo programmare un dialogo  via porta seriale fra un computer (A) e una
periferica (B), i "messaggi" fra questi due apparecchi sono standardizzati
dalla periferica (B).
Tali messaggi sono delle stringhe composte da alcuni caratteri esadecimali
(di controllo) e ASCII (i dati veri e propri).
Tutti i messaggi sono corredati da un byte di controllo (LUNGHEZZA=1), ora:
cosa vuole dire CALCOLARE L'OPERAZIONE DI "OR" ESCLUSIVO SU TUTTI I BYTE DEL
MESSAGGIO ASSUMENDO COME BASE DI CALCOLO 7f ?
ovvero, in pratica a quale calcolo corrisponde?
Grazie.
Daniele


Parti dal valore 7FH, fai uno XOR con il valore del primo byte, quello che
ottieni lo metti in XOR con il valore del secondo byte e cosi' via fino
all'ultimo byte.
ciao
Claudio

ovvero, in pratica a quale calcolo corrisponde?
Devi eseguire l'operazione di XOR (ovvero or esclusivo) tra ogni byte
del messaggio e il valore 7f (esadecimale).
In pratica, se il tuo messaggio e' composto dai byte :
1f 23 45 67 89 ab
L'operazione da eseguire e' la seguente :
1f xor 7f = 00011111 xor 01111111 = 01100000 = 60 
23 xor 7f = 00100011 xor 01111111 = 01011100 = 5c
45 xor 7f = 01001001 xor 01111111 = 00110110 = 36
67 xor 7f = 01100111 xor 01111111 = 00011000 = 18
89 xor 7f = 10001001 xor 01111111 = 11110110 = f6
ab xor 7f = 10101011 xor 01111111 = 11010100 = d4
quindi il messaggio ricodificato e' 
60 5c 36 18 f6 d4
--
Andrea Laforgia
andrea_...@bigfoot.com

 
Sei sicuro? Non e' una cosa del tipo :
primo_byte = primo_byte_letto XOR 01111111
secondo_byte = secondo_byte_letto XOR 01111111
...
Mi sembra un po' diverso da quello che dici tu, pero' magari sbaglio
io...
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 wrote:
  > > > cosa vuole dire CALCOLARE L'OPERAZIONE DI "OR"
  > > > ESCLUSIVO SU TUTTI I BYTE DEL
  > > > MESSAGGIO ASSUMENDO COME BASE
  > > >DI CALCOLO 7f ?
  > > > ovvero, in pratica a quale calcolo corrisponde?
  > > Parti dal valore 7FH, fai uno XOR con il valore del primo byte,
  > > quello che ottieni lo metti in XOR con il valore del secondo
  > > byte e cosi' via fino all'ultimo byte.
  > Sei sicuro? Non e' una cosa del tipo :
  > primo_byte = primo_byte_letto XOR 01111111
  > secondo_byte = secondo_byte_letto XOR 01111111
  > Mi sembra un po' diverso da quello che dici tu, pero' magari sbaglio
io...
  >  Ciao, Luca.
Infatti e' completamente diverso. Se la domanda fosse stata solo quella che
hai quotato avrei pensato la tua stessa cosa, pero' prima c'era la frase:
"Tutti i messaggi sono corredati da un byte di controllo (LUNGHEZZA=1),
ora:"
Questa frase in particolare e poi il contesto del discorso mi fa supporre
che l'oggetto della domanda in realta' sia il calcolo del byte di
controllo, che in casi come questi viene determinato proprio da una somma o
sottrazione o operazione logica o matematica tra tutti i byte del messaggio.
ciao
Claudio

  Ciao, Luca.
Infatti e' completamente diverso. Se la domanda fosse stata solo quella che
hai quotato avrei pensato la tua stessa cosa, pero' prima c'era la frase:
"Tutti i messaggi sono corredati da un byte di controllo (LUNGHEZZA=1),
ora:"
Questa frase in particolare e poi il contesto del discorso mi fa supporre
che l'oggetto della domanda in realta' fosse il calcolo del byte di
