2.3.4.6. Función BOOLE

BOOLE opera como una función lógica binaria de caráctergeneral, con lo que incluiría las estudiadas LOGAND y LOGIOR y otrashasta completar las 16 posibles. su sintaxis es:

(Boole operador entero1 [entero2 ...])

El argumento operador es un entero que representa unnúmero binario de 4 bits. cada bit establecido representa unaopción según la tabla siguiente:

BitEntero1Entero2Resultado:
111_$ (boole 1 1 1)
1
210_$ (boole 2 1 0)
1
401_$ (boole 4 0 1)
1
800_$ (boole 8 0 0)
-1

Cada bit de entero1 es comparado con el correspondiente bitde entero2, especificando una fila de la tabla de resultadosanterior. El bit resultante será 0 ó 1 según estéactivado el bit del número entero que damos como operador quecorresponde a esta posición. Si el bit en cuestión estáactivado el bit resultante es 1; de no ser así el resultado será0.
Para ciertos valores del operador, BOOLE equivale a las operaciones Booleanasstandard de AND, OR, XOR, y NOR.

Operador BinarioOperación BooleanaResultado igual a 1 si de los bits analizados:
1ANDAmbos son 1
6 (4 + 2)XORSólo uno de ellos es igual a 1
7 (4 + 2 + 1)ORCualquiera de ellos es 1
8NORAmbos son 0 (complemento de 1)

Para tratar de comprender mejor lo anterior analizaremos un ejemplo tomadode la ayuda de Visual LISP:

(boole 6 6 5) devuelve 3

Aprovechando las funciones antes definidas hallaremos el equivalente binariode 6, que sería (despreciando los ceros a la izquierda) igual a 110.
Lo mismo para 5 devolvería 101.
ahira podemos hacer la comparación para cada pareja de bits:

Primera pareja: (boole 6 0 1) devuelve 1

Segunda pareja (boole 6 1 0) devuelve 1

Tercera pareja: (boole 6 1 1) devuelve 0

Con lo que tendríamos el número binario 011, que como podemoscomprobar aplicando la función DECIMAL equivale a 3. Todo esto vistodesde la consola de Visual LISP sería:


Normalmente sería más cómodo emplear LOGAND y LOGIORcuando fuera posible reservando BOOLE para otras operaciones lógicasbinarias. Si revisamos los programas LISP incluidos con la aplicaciónAutoCAD encontraremos al gunos ejemplos del uso de esta función. Paraello podemos consultar los archivos DDMODIFY.LSP,MPEDIT.LSP,BURST.LSP yASESMP.LSP de la versión14, y PROJECT.LSP yFACE.LSP de la Versión 12.


Inicio |Índice |Continuar...