2.3.4. Operadores Lógicos Binarios

Si un tema ha sido poco explicado en los manuales de programaciónLISP para AutoCAD, al menos, en los que se puede consultar en español,que no son muchos, es la utilizaciónde los operadores lógicosbinarios. Su importancia y posibilidades de aplicación son inversamenteproporcionales a esa escasa atención que se le dedica. Su uso permite lagestión de una multitud de parámetros de la aplicación queestán codificados como números en formatobinario.

Uno de estos parámetros es el de las referencias a objeto. El valorde la variable de sistema OSMODE es el equivalente decimal de un númerobinario. Al número binario 0000 0001 corresponde la referencia puntoFINal y al número binario 0000 0100 corresponde la referenciaCENtro. Si el valor de OSMODE fuera equivalente al número binario 00000101 eso significaría que están activas a la vez las referenciaspunto FINal y CENtro.

Cada posición de un número binario representa un BIT. Un BITes la unidad de información mínima que es capaz de manejar uncomputador, y sólo puede uno de dos valores, ACTIVADO o DESACTIVADO, queen su representación numérica simbolizamos mediante 1 ó 0.Por eso decimos que en la referencia punto FINal se ACTIVA el primer BIT y parala referencia CENtro se ACTIVA el tercer BIT. El valor binario 1111 1111 1111activaría todas las referencias a objeto posibles.

Dicho así resulta secillo, pero las dificultades comienzan cuandotenemos en cuenta que AutoCAD espera recibir no esta representación abase de ceros y unos, sino su equivalente en formato DECIMAL. Y el equivalentedcimal de cada BIT vendría dado por 2(n-1) dinde nsería la la posición del bit cuyo valor decimal se desea.Expresado en términos de una función LISP (expt 2 (1- n)).

Las operaciones lógicas sobre números binarios disponibles enVisual LISP son cuatro:

A estas operaciones debemos añadir la funciónLSH, desplazamiento binario, que será la primerafunción que estudiaremos.