RISOLTO Dati numerici in 16-bit. Shift e bitwise.

Pubblicità

clessidra

Utente Attivo
Messaggi
766
Reazioni
272
Punteggio
51
Dovrei inserire dei dati in una funzione per niente documentata, width e height. So però che questi dati saranno trattati in questo modo:
- sia data il dato aggregato o combinato di width e height
- width = data >> 16
- height = data & 0xFFFF
Domanda: come faccio a ottenere data sapendo width e height?
Credo 16-bit unsigned.
 
Ultima modifica:
'height' sono i 16 LSB della parola, 'widht' sono invece i 16 MSB, lo si denota da come sono estratti.
La parola completa (ossia 'data') e' a 32 bits (che abbia segno o meno e' ininfluente, ovviamente in questo caso si tratta di 32 bits senza segno)
Per ottenere 'data' devi fare l'opposto: combina i 16 LSB di height e gli sommi i 16 LSB di width spostati a sinistra di 16 posizioni.
 
'height' sono i 16 LSB della parola, 'widht' sono invece i 16 MSB, lo si denota da come sono estratti.
La parola completa (ossia 'data') e' a 32 bits (che abbia segno o meno e' ininfluente, ovviamente in questo caso si tratta di 32 bits senza segno)
Per ottenere 'data' devi fare l'opposto: combina i 16 LSB di height e gli sommi i 16 LSB di width spostati a sinistra di 16 posizioni.
So che per te è roba facile, ma un esempio mi farebbe comodo. Non sono un programmatore.
--- i due messaggi sono stati uniti ---
'height' sono i 16 LSB della parola, 'widht' sono invece i 16 MSB, lo si denota da come sono estratti.
La parola completa (ossia 'data') e' a 32 bits (che abbia segno o meno e' ininfluente, ovviamente in questo caso si tratta di 32 bits senza segno)
Per ottenere 'data' devi fare l'opposto: combina i 16 LSB di height e gli sommi i 16 LSB di width spostati a sinistra di 16 posizioni.
Grazie della dritta, più semplice di quanto pensassi :rolleyes:
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top