Shr

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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


Back to Reserved words.


Overview

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

Example:

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;
begin
  WriteLn(ShortInt(-3) shr 1);
end.

Is a bit set

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


navigation bar: Pascal logical operators
operators

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

see also

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