>> - обозначает сдвиг вправо.
x >> n
сдвиг переменной x вправо на n разрядов.
пример:
1100 >> 1 = 0110
Цитата
арифметический сдвиг вправо
Всегда думал что над (unsigned int) может производиться только строго
логический сдвиг. Арифметический же должен выполняться исключительно над (signed) переменными.
собсно не сложно в этом убедиться:
signed int x1 = 0x80000000;
unsigned int x2 = 0x80000000;
printf("x1 >> 3 = 0x%x\nx2 >> 3 = 0x%x", x1 >> 3, x2 >> 3);
результат:
x1 >> 3 = 0xF0000000 - арифметический сдвиг
x2 >> 3 = 0x10000000 - логический сдвиг