So che si può ottenere il primo byte utilizzandoC get byte ennesima di integer
int x = number & ((1<<8)-1);
o
int x = number & 0xFF;
Ma non so come ottenere il byte n-esima di un numero intero. Ad esempio, 1234 è 00000000 00000000 00000100 11010010 come numero intero a 32 bit Come posso ottenere tutti questi byte? primo sarebbe 210, secondo sarebbe 4 e gli ultimi due sarebbe 0.
Si sta già utilizzando l'operatore di spostamento dei bit '<<' nel proprio esempio. Come puoi usare l'operatore del cambio per ottenere diversi bit dal tuo numero? –
Prova l'altro operatore di spostamento del bit. –
Ricorda che il "primo byte", come lo hai usato qui, potrebbe non essere il primo byte in memoria. Il tuo esempio, 1234, potrebbe facilmente essere '11010010' nell'indirizzo più basso e, '00000000' nell'indirizzo più alto. – Thanatos