And/es

From Lazarus 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