Tôi đang gặp một chút rắc rối khi lấy n bit từ một byte.Lấy n bit từ một byte
Tôi có số nguyên không dấu. Giả sử số của chúng tôi trong hex là 0x2A, là số thập phân 42. Trong nhị phân nó trông như thế này: 0010 1010. Làm thế nào tôi sẽ lấy 5 bit đầu tiên là 00101 và 3 bit tiếp theo là 010, và đặt chúng vào các số nguyên riêng biệt?
Nếu có ai có thể giúp tôi điều đó thật tuyệt! Tôi biết cách trích xuất từ một byte đơn giản là làm
int x = (number >> (8*n)) & 0xff // n being the # byte
mà tôi thấy trên một bài đăng khác trên ngăn xếp tràn, nhưng tôi không chắc chắn cách lấy các bit riêng ra khỏi byte. Nếu ai đó có thể giúp tôi, điều đó thật tuyệt! Cảm ơn!
bit 5 (MSB) đầu tiên là 42 là 00000 vì int luôn hơn 1 byte. Ngoài ra, không có thứ như số nguyên không dấu có dạng thập phân của hex. 'int a = 0x2A;' cũng giống như viết 'int a = 42;' – user93353