&
là bitwise AND. Với hai bit cho đầu vào, sau đây cung cấp cho các đầu ra chút bởi phép toán AND:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
Trong trường hợp này,
7 in binary is 00000111
8 in binary is 00001000
--------
00000000, which is 0 in decimal.
Giả sử bạn có 26 thay vì 8.
7 in binary is 00000111
26 in binary is 00011010
--------
00000010, which is 2 in decimal.
Bitwise hoạt động được sử dụng để trích xuất và thao tác các trường được đóng gói thành một số.
Ví dụ: giả sử bạn có 3 trường được đóng gói thành một số, hai trong số 4 bit mỗi (0,15), một và 3 bit (0,7).
// n = aaaabbbbccc
// Unpack the fields:
a = (n >> 7) & 0xF;
b = (n >> 3) & 0xF;
c = (n >> 0) & 0x7;
// Pack the fields:
n = (a << 7)
| (b << 3)
| (c << 0);