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}}
  
{{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]]
 
[[Category:Pascal/ru]]
 

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;

См. также