From Free Pascal wiki
Revision as of 03:54, 1 September 2021 by Mozi (talk | contribs) (→‎Overview: Added an example showing how "shr" works. Copied from and modified.)
Jump to navigationJump to search

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

Back to Reserved words.


The reserved word Shift right (shr) performs a logical right bit-shift operation (opposite than shl).


Command is: 00000100 shr 2 (shift right 2 bits)
Action is:  00000100 -> 00 (00 gets added to the left of the value; right 00 "disappears")
Result is:  00000001

Shr with signed types

Note: unlike the >> operator in the C language, the shr operator is a logical (not arithmetic) bit shift, even if the left operand is a signed integer. An implicit typecast and extension to a larger unsigned type may be performed before the shift operation. Check what the following program actually prints.

program ShrTest;
  WriteLn(ShortInt(-3) shr 1);

Is a bit set

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

navigation bar: Pascal logical operators

and • or • not • xor
shl • shr
and_then (N/A)• or_else (N/A)

see also

{$boolEval} • Reference: § “boolean operators” • Reference: § “logical operators”