Спасибо за ответ, Керрек!
ня я начал читать «Программирование жемчуга» и, выполняя это упражнение, натолкнулся на вопрос «Как бы вы реализовали свой собственный битовый вектор?». Когда я посмотрел на решение, это было так:
#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000000
int a[1 + N/BITSPERWORD];
void set(int i) { a[i >> SHIFT] |= (1 << (i & MASK));
Где я запутался в этом утверждении
1 << (i & MASK)
Может кто-нибудь объяснить мне, что здесь происходит?