Difference between revisions of "And"

From Lazarus wiki
Jump to navigationJump to search
(→‎Boolean operation: Boolean And)
(→‎Bitwise operation: remove non-typical usage example (now is power of two))
Line 26: Line 26:
 
== Bitwise operation ==
 
== Bitwise operation ==
  
Logical '''And''' (aka Bitwise And) requires ordinal operands and sets a bit in the result variable to 1 if and only if both of the corresponding bits in the operands are 1.
+
Logical '''And''' (aka Bitwise And) requires ordinal operands and sets a bit in the result variable to 1 if and only if both of the corresponding bits in the operands are 1.
 
 
=== Is power of two ===
 
 
 
<syntaxhighlight>
 
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; 
 
</syntaxhighlight>
 
 
 
If you call IsPowerOfTwo(4) then you get true. If you call IsPowerOfTwo(5) then you get false .
 
  
 
== See also ==
 
== See also ==

Revision as of 14:37, 3 November 2018

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

Boolean operation

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

Truth table

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

Bitwise operation

Logical And (aka Bitwise And) requires ordinal operands and sets a bit in the result variable to 1 if and only if both of the corresponding bits in the operands are 1.

See also