Difference between revisions of "Shr"
(→Shr with signed types: Added the internal link to "Typecast".)
(Undo revision 146631 by Mozi (talk). This is a program, neither a function nor procedure. I'm sorry.)
|(One intermediate revision by the same user not shown)|
Latest revision as of 04:30, 1 September 2021
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; begin WriteLn(ShortInt(-3) shr 1); end.
Is a bit set
function isBitSet(AValue, ABitNumber:integer):boolean; begin result:=odd(AValue shr ABitNumber); end;