Difference between revisions of "Shr"

From Lazarus wiki
Jump to navigationJump to search
Line 25: Line 25:
  
 
== See also ==
 
== See also ==
* [[Odd]]
+
* [[And]]
 
* [[Boolean]]
 
* [[Boolean]]
 
* [[Const]]
 
* [[Const]]
 
* [[Function]]
 
* [[Function]]
 
* [[Integer]]
 
* [[Integer]]
 +
* [[Odd]]
 +
* [[Or]]
 +
* [[Shl]]
  
 
[[Category:Pascal]]
 
[[Category:Pascal]]

Revision as of 07:51, 28 October 2014

Overview

Template:shr

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

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;

See also