hilpers


  hilpers > hobby.* > hobby.elettronica.digitale > 05/2006

 #1  
06.05.2006, 00: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, 01: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, 01: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, 10: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, 16: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, 16: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...

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

prendere i byte in parole di 2 byte

Salve a tutti. Ho un problema che non so risolvere. Ho bisogno di codificare una sequenza numerica in un'altra sequenza numerica. Mi spiego meglio. Supponiamo di aver...

Conversione byte->string->byte

Scusate la domanda banale, ma non riesco a capire che cosa devo fare per passare da dati di tipo byte a dati di tipo stringa e ritornare successivamente a tipi byte. var...


Tutti gli orari sono GMT. Attualmente sono le 09:40. | Privacy Policy