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

clessidra

Utente Attivo
401
62
Hardware Utente
CPU
VIA C3
Scheda Video
Ati Rage
Sistema Operativo
linux - Red Hat 1.1
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:

Andretti60

Utente Èlite
3,415
2,292
Hardware Utente
'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.
 
  • Mi piace
Reactions: clessidra

clessidra

Utente Attivo
401
62
Hardware Utente
CPU
VIA C3
Scheda Video
Ati Rage
Sistema Operativo
linux - Red Hat 1.1
'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.
Post automaticamente unito:

'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:

Entra

oppure Accedi utilizzando