Difference between revisions of "Shr"
From Lazarus wiki
Jump to navigationJump to searchLine 25: | Line 25: | ||
== See also == | == See also == | ||
− | * [[ | + | * [[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;