Difference between revisions of "Shr/ru"
From Lazarus wiki
Jump to navigationJump to search (Created page with " {{Shr}} == Обзор == '''Sh'''ift '''r'''ight (shr) выполняет операцию битового сдвига вправо (противоположное дейс...") |
m (Fixed syntax highlighting; deleted category included in page template) |
||
Line 1: | Line 1: | ||
+ | {{Shr}} | ||
− | |||
== Обзор == | == Обзор == | ||
+ | |||
'''Sh'''ift '''r'''ight (shr) выполняет операцию битового сдвига вправо (противоположное действие [[Shl/ru|shl]]). | '''Sh'''ift '''r'''ight (shr) выполняет операцию битового сдвига вправо (противоположное действие [[Shl/ru|shl]]). | ||
== Shr со знаковыми типами == | == Shr со знаковыми типами == | ||
+ | |||
Примечание: в отличие от оператора '''>>''' в языке C, оператор shr является логическим (не арифметическим) оператором сдвига, даже если левый операнд является знаковым целым числом. Неявное приведение типов и расширение до большего беззнакового типа может быть выполнено до операции сдвига. Проверьте, что в действительности напечатает следующая программа. | Примечание: в отличие от оператора '''>>''' в языке C, оператор shr является логическим (не арифметическим) оператором сдвига, даже если левый операнд является знаковым целым числом. Неявное приведение типов и расширение до большего беззнакового типа может быть выполнено до операции сдвига. Проверьте, что в действительности напечатает следующая программа. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
program ShrTest; | program ShrTest; | ||
begin | begin | ||
Line 16: | Line 18: | ||
== Проверить установлен ли бит == | == Проверить установлен ли бит == | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
function isBitSet(AValue, ABitNumber:integer):boolean; | function isBitSet(AValue, ABitNumber:integer):boolean; | ||
begin | begin | ||
Line 24: | Line 26: | ||
== См. также == | == См. также == | ||
+ | |||
* [[And/ru|And]] | * [[And/ru|And]] | ||
* [[Boolean/ru|Boolean]] | * [[Boolean/ru|Boolean]] | ||
Line 32: | Line 35: | ||
* [[Or/ru|Or]] | * [[Or/ru|Or]] | ||
* [[Shl/ru|Shl]] | * [[Shl/ru|Shl]] | ||
− | |||
− |
Latest revision as of 12:58, 26 February 2020
│
Deutsch (de) │
English (en) │
français (fr) │
русский (ru) │
Обзор
Shift right (shr) выполняет операцию битового сдвига вправо (противоположное действие shl).
Shr со знаковыми типами
Примечание: в отличие от оператора >> в языке C, оператор shr является логическим (не арифметическим) оператором сдвига, даже если левый операнд является знаковым целым числом. Неявное приведение типов и расширение до большего беззнакового типа может быть выполнено до операции сдвига. Проверьте, что в действительности напечатает следующая программа.
program ShrTest;
begin
WriteLn(ShortInt(-3) shr 1);
end.
Проверить установлен ли бит
function isBitSet(AValue, ABitNumber:integer):boolean;
begin
result:=odd(AValue shr ABitNumber);
end;