hilpers


  hilpers > hobby.* > hobby.elettronica.digitale

 #1  
05.05.2006, 23:07
romeo
mi spiego,ho 2 byte già definiti(tipo:11110000 e 10001000)e voglio che il
secondo byte entri parzialmente nel primo occupandone i primi 3 bit ,quindi
con un byte risultante 11110100,qual'è il metodo?scusate la mia ignoranza
digitale:)
 #2  
06.05.2006, 00:09
Stefano
"romeo" <romeo> ha scritto nel messaggio
news:baef
> mi spiego,ho 2 byte già definiti(tipo:11110000 e 10001000)e voglio che il
> secondo byte entri parzialmente nel primo occupandone i primi 3 bit

,quindi
> con un byte risultante 11110100,qual'è il metodo?scusate la mia ignoranza
> digitale:)
>...fai uno SWAP del secondo byte ( in questo caso è inutile perchè i 4 bit

più significativi sono uguali ai 4 bit meno significativi ), poi una RRF
(rotazione verso destra del secondo byte di una posizione), AND bit a bit
del primo byte con la maschera 11111000 ed AND bit a bit del secondo byte
con la maschera 00000111 infine sommi i due byte...questo vale qualunque
siano i due byte..nel caso generale insomma..

...se i valori sono statici invece (e sono quelli che hai scritto sopra)
basta fare un RRF del secondo byte metterlo in AND con la maschera 00000111
e sommare il risultato al primo byte..
Saluti
Steno
 #3  
06.05.2006, 00:44
romeo
"Stefano" <Nospam> ha scritto nel messaggio
news:1637
>
> "romeo" <romeo> ha scritto nel messaggio
> news:baef
> ,quindi
> ..fai uno SWAP del secondo byte ( in questo caso è inutile perchè i 4 bit
> più significativi sono uguali ai 4 bit meno significativi ), poi una RRF
> (rotazione verso destra del secondo byte di una posizione), AND bit a bit
> del primo byte con la maschera 11111000 ed AND bit a bit del secondo byte
> con la maschera 00000111 infine sommi i due byte...questo vale qualunque
> siano i due byte..nel caso generale insomma..
>
> ..se i valori sono statici invece (e sono quelli che hai scritto sopra)
> basta fare un RRF del secondo byte metterlo in AND con la maschera
> 00000111
> e sommare il risultato al primo byte..
> Saluti
> Steno
>azz sono una capra...quindi devo shiftare il secondo byte(10001000)di 3

posizioni verso sinistra,quindi diventa?puoi farmi un'esempio con le
traformazioni?io uso picbasic pro con i simboli &(and),<<(shift)
 #4  
06.05.2006, 09:48
Stefano
"romeo" <romeo> ha scritto nel messaggio
news:baef
>
> "Stefano" <Nospam> ha scritto nel messaggio
> news:1637
> >
> > "romeo" <romeo> ha scritto nel messaggio
> > news:baef
> >> mi spiego,ho 2 byte già definiti(tipo:11110000 e 10001000)e voglio che

il
> >> secondo byte entri parzialmente nel primo occupandone i primi 3 bit

> > ,quindi
> >> con un byte risultante 11110100,qual'è il metodo?scusate la mia

ignoranza
> >> digitale:)
> >>
> >>

> > ..fai uno SWAP del secondo byte ( in questo caso è inutile perchè i 4

bit
> > più significativi sono uguali ai 4 bit meno significativi ), poi una RRF
> > (rotazione verso destra del secondo byte di una posizione), AND bit a

bit
> > del primo byte con la maschera 11111000 ed AND bit a bit del secondo

byte
> azz sono una capra...quindi devo shiftare il secondo byte(10001000)di 3
> posizioni verso sinistra,quindi diventa? puoi farmi un'esempio con le
> traformazioni?io uso picbasic pro con i simboli &(and),<<(shift)
>

prendiamo un caso generale byte1 = 10111010 byte2 = 11010101:
SWAP del secondo byte: 01011101
Shift a destra di una posizione: 00101110
AND con maschera 00000111: 00000110
AND primo byte con maschera 11111000: 10111000
Somma risultati: 00000110 + 10111000 = 10111110

...funziona qualunque siano byte1 e byte2..spero di essere stato chiaro..
Saluti
Steno
 #5  
06.05.2006, 15:12
romeo
"Stefano" <Nospam> ha scritto nel messaggio
news:1044
>


>>

> prendiamo un caso generale byte1 = 10111010 byte2 = 11010101:
> SWAP del secondo byte: 01011101
> Shift a destra di una posizione: 00101110
> AND con maschera 00000111: 00000110
> AND primo byte con maschera 11111000: 10111000
> Somma risultati: 00000110 + 10111000 = 10111110
>
> ..funziona qualunque siano byte1 e byte2..spero di essere stato chiaro..
> Saluti
> Steno
>scusa stefano non ho capito il secondo passaggio:"SWAP del secondo byte:

01011101"
 #6  
06.05.2006, 15:27
Roby
> scusa stefano non ho capito il secondo passaggio:"SWAP del secondo byte:
> 01011101"


La funzione SWAP inverte i 4 bit più significativi con i 4 meno
significativi:

SWAP 76543210 -> 32107654

* ho messo i numeri al posto dei bit per rendere la cosa più chiara

Ciao
Discussioni simili
Da una stringa di byte ad array di byte

Salve a tutti, con byte[] IV = Encoding.ASCII.GetBytes("arcobaleno"); ottengo una serie di numeri "97,114,99,111,98,97,108,101,110,11" che conservo nel web.config per...

Buffer (void *) a cui accede byte a byte

Nelle mie applicazioni mi ritrovo spesso a dover passare ad una funzione il puntatore ad un buffer in memoria. Come ho visto fare nelle varie funzioni di libreria (vedi...

Confronto di files byte per byte

Come posso confrontare, in java, due file byte per byte, per verificare di avere eseguito un corretto backup di sicurezza ? Grazie

Integer=byte*byte [OVERFLOW?]

Ciao a tutti il seguente codice Dim nRighe As Byte Dim nColonne As Byte Dim nElementi As Integer Dim i As Byte Dim ii As Byte Dim index As Integer


Tutti gli orari sono GMT. Attualmente sono le 10:41. | Privacy Policy