Difference between revisions of "Shl"
From Free Pascal wiki
Jump to navigationJump to searchLine 7: | Line 7: | ||
Result is: 00010000 | Result is: 00010000 | ||
+ | |||
+ | == Clear a bit == | ||
+ | |||
+ | <delphi> | ||
+ | function ClearBit( const aValue, aBitNumber : integer ) : integer; | ||
+ | begin | ||
+ | result := aValue and not( 1 shl aBitNumber ); | ||
+ | end; | ||
+ | </delphi> | ||
+ | |||
+ | If you call ClearBit(%1111,1) then get %1101 (%1111 = 15 and %1101 = 13). If you call ClearBit(13,2) then get 9 (9 = %1001) . | ||
== See e.g == | == See e.g == | ||
− | + | ||
* [[Or# Set a bit|Set a bit]] | * [[Or# Set a bit|Set a bit]] | ||
* [[Xor# Toggle a bit|Toggle a bit]] | * [[Xor# Toggle a bit|Toggle a bit]] |
Revision as of 16:41, 12 January 2009
Shift left (shl) performs a left bit-shift operation (opposite than shr).
E.g
Command is: 00000100 shl 2 Action is: 00000100 <- 00 Result is: 00010000
Clear a bit
<delphi> function ClearBit( const aValue, aBitNumber : integer ) : integer; begin
result := aValue and not( 1 shl aBitNumber );
end; </delphi>
If you call ClearBit(%1111,1) then get %1101 (%1111 = 15 and %1101 = 13). If you call ClearBit(13,2) then get 9 (9 = %1001) .