Difference between revisions of "And"

From Lazarus wiki
Jump to navigationJump to search
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 31: Line 31:
 
== Is power of two ==
 
== Is power of two ==
  
<delphi>
+
<syntaxhighlight>
 
function IsPowerOfTwo( const aValue : longint ): boolean;
 
function IsPowerOfTwo( const aValue : longint ): boolean;
 
var
 
var
Line 46: Line 46:
 
   result := b;
 
   result := b;
 
end;   
 
end;   
</delphi>
+
</syntaxhighlight>
  
 
If you call IsPowerOfTwo(4) then get true. If you call IsPowerOfTwo(5) then get false .
 
If you call IsPowerOfTwo(4) then get true. If you call IsPowerOfTwo(5) then get false .

Revision as of 14:48, 24 March 2012

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

Boolean operation

And produces a value of true if and only if both of its operands are true.

Truth table

A B   A and B  
  false     false     false
  false   true   false
  true   false   false
  true   true   true


Bitwise operation

Bitwise and sets a bit to 1 if and only if all of the corresponding bits in its operands are 1.

Is power of two

function IsPowerOfTwo( const aValue : longint ): boolean;
var
  x : longint;
  b : boolean;
begin
  b := false;
  if aValue <> 0 then
    begin
      x := aValue - 1;
      x := x and aValue;
      if x = 0 then b := true;
    end;
  result := b;
end;

If you call IsPowerOfTwo(4) then get true. If you call IsPowerOfTwo(5) then get false .

Read more