2.3.4.3. Función ~ (NOT lógico binario)

Esta función ~ resulta especialmente incomprensible si consultamos los manuales AutoLISP habituales, incluyendo la "ayuda" que viene con el programa. Nos dirán que "esta función devuelve la negación lógica de una cifra binaria, es decir, el complemento a uno". Y se nos ilustra con ejemplos como:
(~ 3) devuelve -4

Si bien la explicación es del todo correcta, a los que no poseemos conocimientos matemáticos tan completos no nos aprovecha gran cosa esa explicación. Para encontrar una respuesta más comprensible hemos tenido que recurrir al viejo manual de Nelson Johnson** cuya traducción al español fuera publicada en 1990 por McGraw-Hill. Explica Johnson que:

(~ <número>)
Puede que deseemos verificar un número para encontrar su función NOT bit a bit. En este caso, se invierten todos los bits. el valor devuelto por la función "~" será un número que tenga todos los bits a 0 del argumento puestos a 1 y, viceversa, todos los bits del argumento que estaban a 1 estarán a cero.

El número 9 en binario sería 1001, o mejor, considerando un tamaño de palabra de 32 bits:
0000 0000 0000 0000 0000 0000 0000 1001
(~ 9) devolvería -10
Lo que sería igual en números binarios con tamaño de palabra de 32 bits a:
1111 1111 1111 1111 1111 1111 0110

El valor negativo se explica, según lo dicho al explicar la función LSH, al ocupar la posición extrema izquierda un valor 1. La posibilidad de construir este "filtro negativo" de un valor binario es extremadamente valioso para gestionar los valores guardados en términos de posiciones de bits.

Pero para la gestión de estos valores binarios nos deberemos auxiliar de otras funciones como LOGAND, LOGIOR, y BOOLE

No es muy frecuente el uso de esta función en los programas LISP dentro de AutoCAD. Revisando los programas suministrados con la aplicación podemos encontrar ejemplos de su uso en AI_UTILS.LSP y DDMODIFY.LSP de las versiones 13 y 14 y FORMAT.LSP de la versión 12.


* En los computadores que se utilizan en España el carácter ~ (tilde) se ha suprimido para incluir en su lugar la letra ñ. Para escribir el carácter tilde será necesario utilizar la combinación de teclas ALT 126, es decir, manteniendo pulsada la tecla «ALT» teclear 126 en el teclado numérico.

** Johnson, Nelson. AutoCAD: Manual de Referencia. Osborne/McGraw-Hill, Madrid, 1990. ISBN 84-7615-451-8