- Код: Выделить всё
program Project1;
var
i: integer;
begin
i := 55;
WriteLn(66 shr 32);
WriteLn(i shr 32);
end.
Результат:
0
55
То есть с константой ведет себя нормально, а с переменной для второго аргумента берется остаток от деления на 32, и соответственно для 32 получаем сдвиг вправо на 0, для 33 на 1 и т.д.
Проверьте у себя.
FPC 2.6.2