Shr/ru

From Free Pascal wiki

Deutsch (de) English (en) français (fr) русский (ru)

Обзор

Shift right (shr) выполняет операцию битового сдвига вправо (противоположное действие shl).

Shr со знаковыми типами

Примечание: в отличие от оператора >> в языке C, оператор shr является логическим (не арифметическим) оператором сдвига, даже если левый операнд является знаковым целым числом. Неявное приведение типов и расширение до большего беззнакового типа может быть выполнено до операции сдвига. Проверьте, что в действительности напечатает следующая программа.

program ShrTest;
begin
  WriteLn(ShortInt(-3) shr 1);
end.

Проверить установлен ли бит

function isBitSet(AValue, ABitNumber:integer):boolean;
begin
   result:=odd(AValue shr ABitNumber);
end;

См. также