|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2007
Messaggi: 58
|
[C] Operazione sui byte
Volevo chiedervi un consiglio:
Ho 3 byte esadecimali e devo trasportarli in una variabile (penso long int), come posso fare? I 3 byte assumono valore massimo 16777214 quando sono tutti e 3 a FF. Ricapitolando: con FF FF FF: valore 16777214 con 00 FF FF: valore 65535 con 00 00 FF: valore 255. Grazie e saluti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sono stringhe oppure sono interi ?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Codice:
unsigned char a, b, c; int val = (a << 16) | (b << 8) | c;
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2007
Messaggi: 58
|
Inizialmente i valori sono su 3 byte.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2007
Messaggi: 58
|
Vizzz, a che scopo scifti prima di 16 e poi di 8 a sinistra?
ciao e grazie |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2782
|
Perchè 8 è la dimensione di un byte immagino.
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
lo shift è un operatore che opera sui bit, quindi sposti effettivamente prima di 2 byte e poi di un byte a sinistra.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Dec 2006
Messaggi: 29
|
perchè shiftando a sinistra di 16 sposta il byte a nella posizione del secondo byte della varibile int, successivamente spostando di 8 il byte b lo posizione nel terzo byte e il c non lo shifta in quanto tramite l'operazione logica or il byte c si troverà in ultima posizione.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:51.











ho concluso con: kvegeta, doctordb, Leland Gaunt.









