View Full Version : [C] Operazione sui byte
legolas977
20-11-2007, 21:30
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.
Sono stringhe oppure sono interi ?
unsigned char a, b, c;
int val = (a << 16) | (b << 8) | c;
legolas977
20-11-2007, 23:34
Inizialmente i valori sono su 3 byte.
legolas977
21-11-2007, 00:26
Vizzz, a che scopo scifti prima di 16 e poi di 8 a sinistra?
ciao e grazie
wingman87
21-11-2007, 00:42
Perchè 8 è la dimensione di un byte immagino.
Vizzz, a che scopo scifti prima di 16 e poi di 8 a sinistra?
ciao e grazie
lo shift è un operatore che opera sui bit, quindi sposti effettivamente prima di 2 byte e poi di un byte a sinistra.
Vizzz, a che scopo scifti prima di 16 e poi di 8 a sinistra?
ciao e grazie
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.