Difference between revisions of "Shl/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with " {{Shl}} <br> <br> == Обзор == '''Sh'''ift '''l'''eft ('''shl''') выполняет операцию битового сдвига влево, сдвигая значе...")
 
Line 29: Line 29:
 
* [[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]]
 
[[Category:Pascal/ru]]

Revision as of 11:12, 21 January 2018

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) .

См. также