Shr/ru

From Free Pascal wiki
Jump to navigationJump to search

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;

См. также