Difference between revisions of "Shl"

From Free Pascal wiki
Jump to navigationJump to search
Line 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 ==
  
* [[And# Clear a bit|Clear a bit]]
+
 
 
* [[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) .

See e.g