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

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

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

(~ <número>)
Puede que deseemos verificar un número para encontrar su funciónNOT bit a bit. En este caso, se invierten todos los bits. el valordevuelto por la función "~" será un número quetenga todos los bits a 0 del argumento puestos a 1 y, viceversa, todos los bitsdel 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 depalabra de 32 bits a:
1111 1111 1111 1111 1111 1111 0110

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

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

No es muy frecuente el uso de esta función en los programas LISPdentro de AutoCAD. Revisando los programas suministrados con laaplicación podemos encontrar ejemplos de su uso enAI_UTILS.LSP yDDMODIFY.LSP de las versiones 13 y 14 yFORMAT.LSP de la versión 12.


* En los computadores que se utilizan enEspaña el carácter ~ (tilde) se ha suprimido para incluir en sulugar 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 tecladonumérico.

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