Sto riscontrando un piccolo problema nell'acquisire n bit da un byte.Grabbing n bit da un byte
Ho un numero intero senza segno. Diciamo che il nostro numero in esadecimale è 0x2A, che è 42 in decimale. In binario appare così: 0010 1010. Come faccio ad afferrare i primi 5 bit che sono 00101 ei successivi 3 bit che sono 010, e li collochiamo in interi separati?
Se qualcuno potesse aiutarmi sarebbe bello! Io so come estrarre da un byte, che è quello di fare semplicemente
int x = (number >> (8*n)) & 0xff // n being the # byte
che ho visto su un altro post su stack overflow, ma non ero sicuro su come ottenere i bit separati fuori del byte. Se qualcuno potesse aiutarmi, sarebbe fantastico! Grazie!
I primi 5 bit (MSB) di 42 sono 00000 perché int è sempre più di 1 byte. Inoltre, non esiste nulla come numero intero senza segno che ha la forma decimale di un esagono. 'int a = 0x2A;' equivale a scrivere 'int a = 42;' – user93353