2.3.4. Operadores Lógicos Binarios

Si un tema ha sido poco explicado en los manuales de programación LISP para AutoCAD, al menos, en los que se puede consultar en español, que no son muchos, es la utilizaciónde los operadores lógicos binarios. Su importancia y posibilidades de aplicación son inversamente proporcionales a esa escasa atención que se le dedica. Su uso permite la gestión de una multitud de parámetros de la aplicación que están codificados como números en formato binario.

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

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

Dicho así resulta secillo, pero las dificultades comienzan cuando tenemos en cuenta que AutoCAD espera recibir no esta representación a base de ceros y unos, sino su equivalente en formato DECIMAL. Y el equivalente dcimal de cada BIT vendría dado por 2(n-1) dinde n serí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 en Visual LISP son cuatro:

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