Число 1, сдвинутое справа на что-либо большее, чем 0, должно быть 0, правильно? Тем не менее, я могу ввести эту очень простую программу, которая печатает 1.
#include <stdio.h>
int main()
{
int b = 0x80000000;
int a = 1 >> b;
printf("%d\n", a);
}
Протестировано с помощью gcc на linux.