Difference between revisions of "Shl/ru"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with " {{Shl}} <br> <br> == Обзор == '''Sh'''ift '''l'''eft ('''shl''') выполняет операцию битового сдвига влево, сдвигая значе...")
 
m (Fixed syntax highlighting; deleted category included in page template)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 +
{{Shl}}
  
{{Shl}}
 
<br>
 
<br>
 
 
== Обзор ==
 
== Обзор ==
 
'''Sh'''ift '''l'''eft ('''shl''') выполняет операцию битового сдвига влево, сдвигая значение на количество бит, указанное в аргументе (противоположное действие [[Shr/ru|shr]]).
 
'''Sh'''ift '''l'''eft ('''shl''') выполняет операцию битового сдвига влево, сдвигая значение на количество бит, указанное в аргументе (противоположное действие [[Shr/ru|shr]]).
Line 15: Line 13:
 
== Сбросить бит ==
 
== Сбросить бит ==
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
function ClearBit( const aValue, aBitNumber : integer ) : integer;
 
function ClearBit( const aValue, aBitNumber : integer ) : integer;
 
begin
 
begin
Line 29: Line 27:
 
* [[And/ru|And]]
 
* [[And/ru|And]]
 
* [[Not/ru|Not]]
 
* [[Not/ru|Not]]
* [[Or/ru# Установка бит|Установка бита]]
+
* [[Or/ru#Установка_бита|Установка бита]]
* [[Xor/ru# Переключение битов|Переключение битов]]
+
* [[Xor/ru#Переключение_битов|Переключение битов]]
 
* [[Shr/ru|Shr]]
 
* [[Shr/ru|Shr]]
 
* [[Bit manipulation/ru|Bit manipulation]]
 
* [[Bit manipulation/ru|Bit manipulation]]
 
[[Category:Pascal/ru]]
 

Latest revision as of 12:52, 26 February 2020

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)

Обзор

Shift left (shl) выполняет операцию битового сдвига влево, сдвигая значение на количество бит, указанное в аргументе (противоположное действие shr).

Например

Команда: 00000100 shl 2 (сдвиг влево на 2 бита)
 
Действие:  00000100 <- 00 (00 добавляется справа к значению; слева 00 "теряется")
 
Результат:  00010000

Сбросить бит

function ClearBit( const aValue, aBitNumber : integer ) : integer;
begin
  result := aValue and not( 1 shl aBitNumber );
end;

Если вы вызовете ClearBit(%1111,1), то получите %1101 (двоичное число %1111 это 15, а %1101 = 13).

Если вызовете ClearBit(13,2), то получите 9 (9 = %1001) .

См. также