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}} | ||
− | |||
− | |||
− | |||
== Обзор == | == Обзор == | ||
'''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]] | ||
− | |||
− |
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) .