Difference between revisions of "Shr"
From Lazarus wiki
Jump to navigationJump to search (add footer) |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Shr}} | ||
+ | |||
+ | |||
+ | Back to [[Reserved words]]. | ||
+ | |||
+ | |||
== Overview == | == Overview == | ||
− | + | ||
− | + | The reserved word '''Sh'''ift '''r'''ight (shr) performs a logical right bit-shift operation (opposite than [[Shl|shl]]). | |
− | |||
− | '''Sh'''ift '''r'''ight (shr) performs a logical right bit-shift operation (opposite than [[Shl|shl]]). | ||
== Shr with signed types == | == 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. | 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. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
program ShrTest; | program ShrTest; | ||
begin | begin | ||
Line 17: | Line 21: | ||
== Is a bit set == | == Is a bit set == | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
function isBitSet(AValue, ABitNumber:integer):boolean; | function isBitSet(AValue, ABitNumber:integer):boolean; | ||
begin | begin | ||
Line 24: | Line 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | {{Logical operators}} | |
− | |||
− | |||
* [[Const]] | * [[Const]] | ||
* [[Function]] | * [[Function]] | ||
* [[Integer]] | * [[Integer]] | ||
− | |||
− |
Revision as of 23:38, 16 October 2020
│
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).
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;
operators |
|
---|---|
see also |
|