And/es

From Free Pascal wiki
Jump to navigationJump to search

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

Operación booleana

Boolean And produce un valor de true si y sólo si ambos operandos booleanos son verdaderos.

Tabla de True

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

Operación a bit

Logical And (también conocido como Bitwise And) requiere operandos ordinales y establece un bit en la variable de resultado a 1 si y sólo si ambos bits correspondientes en los operandos son 1.

Es potencia de dos

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

Si llamas a EsPotenciaDeDos(4) entonces obtienes True. Si llamas a EsPotenciaDeDos(5) obtienes False.

También ver