Difference between revisions of "And"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Boolean operation: Clarify operands must be Boolean)
(→‎Boolean operation: Boolean And)
Line 3: Line 3:
 
== Boolean operation ==
 
== Boolean operation ==
  
'''And''' produces a value of [[True|true]] if and only if both of its Boolean operands are true.
+
Boolean '''And''' produces a value of [[True|true]] if and only if both of its Boolean operands are true.
  
 
=== Truth table ===
 
=== Truth table ===

Revision as of 05:49, 14 June 2016

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.

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 you get true. If you call IsPowerOfTwo(5) then you get false .

See also