expresion extraña

javiinet
21 de Marzo del 2005
Soy neófito en este lenguaje pero no en Programación.

He visto en un código fuente que me he bajado por Internet esta expresión:
Image1.Left = Not HScroll1.Value

Y no entiendo como es posible que el valor que devuelva NOT (que ha de ser de tipo lógico) se le asigne a un entero: Image1.Left.

¿Alguien me lo puede explicar?

Muchas gracias

eth0
21 de Marzo del 2005
<<el valor que devuelva NOT (que ha de ser de tipo lógico)>>

No, no, te equivocas. Los operadores AND, OR y NOT también se pueden aplicar sobre datos numéricos. En este caso, actúan sobre el operando a nivel de bits:

AND: Compara los bits de los dos operandos y devuelve un número formado por los bits que están a 1 en los dos operandos.

Por ejemplo: 5 AND 4 = 4 o en binario 00000101 AND 00000100 = 00000100

OR: Compara los bits de los dos operandos y devuelve un número formado por aquellos bits que están a 1 en cualquiera de los dos operandos.

Por ejemplo: 5 OR 4 = 5 o en binario 00000101 OR 00000100 = 00000101

Y por último, el operador NOT invierte todos los bits de un número, devolviendo por lo general su negativo más uno.

Por ejemplo: NOT 5 = -6 o en binario NOT 00000101 = 11111010

. : AlphaSoft : .
21 de Marzo del 2005
O.K.

Ya ves, es que esto de las puertas logicas es todo un rollo.

y ati, eth0, te felicito, se ve que masticas muy bien el binario.

Lo mejor seria que nos explicara el contexto en el que aparece esta sentencia, y asi, poder aydarlo mejor...

Saludos!

. : AlphaSoft : .

alphasoft
21 de Marzo del 2005
O.K.

Aqui la clave es Not, Not se usa mucho en sentencias como:

If Not parar then Seguir

Esta expresion le dice a VB, que si parar no es verdadero, siga.

Not se usa para invertir un resultado:

If Not Seguir then parar

Si "Seguir" es igual a Falso Not devuelve Vedadero y se cumple la condicioon NOT, porque "Seguir" NO es verdadero.

En tu caso, tengo una idea ( talves estas trabajando con el ZOOM de la imagen ) pero prefiero que me expliques el contexto en el que aparece la Expresion...

Espero que te sirva, Si tienes mas dudas "NO DUDES" en preguntar.

Bienvenido a Visual Basic!

. : AlphaSoft : .