Bài viết liên quan: Các Thao Tác Trên Bit
Lấy mã 0 hoặc 1 tại vị trí bất kỳ trong dải bit
Giả sử dải bit có dạng như sau và ta muốn lấy được trạng thái bit ở vị trí thứ 6: 1101 0101
- Vị trí thứ 6 được tính từ bit có trọng số thấp qua cao (từ phải qua trái).
Dịch dải bit sang phải n bits
Trong trường hợp này n là 6.
1101 0101 >> 6 = 0000 0011
Dùng phép toán AND với 1 để lấy kết quả
0000 0011 & 1 0000 0001
Code
Tạo chương trình và code như sau:
void printBinary(void *text, int length) { for(int i = length - 1; i >= 0; i--) { printf("%d", (*(unsigned char*)text >> i) & 1); } }