Hola buenas panas mi duda siguiente parece mu sencilla
pero la verdad e visto algunos codigos q usan el operador AND para comparacion de numeros y lo q devuelve es otro numero y no tengo idea de como se hace la comparacion para predecir el resultado alguien q pueda explicar por favor! Gracias
dejo un ejemplo :
x = 50 and 100
x = 3 and 1000
x = 25 and 5000
ejemplos asi. :P
HOLA!!!
El operador logico AND tomara el valor binario de ambos numeros y los comparara de esta manera (sigo tus ejemplos)
x = 50 and 100
50 = 0100110
100 = 0010011
----------
0000010 =8
x = 3 and 1000
3 = 1100000000
1000 = 0001011111
--------------
0000000000 =0
x = 25 and 5000
25 = 1001100000000
1000 = 0001000111001
-----------------
0001000000000 =32
GRACIAS POR LEER!!!
:O oh gracias pana pero y el resultado porq varia??? Hace una resta suma?
HOLA!!!
Mira and lo que hace es comparar los Bits (los unos y ceros)... si hay dos 1 en la misma posicion se coloca un uno en dicha posicion del resultado.
Si no sabes que es el sistema binario te recomiendo este video de u AlteradosPorPi, muy buen programa. http://www.youtube.com/watch?v=ghNtjZ2aP0I
Ahora que ya entendemos mas o menos que es el sistema binario vamos a la operacion AND.
Te lo explico con ejemplos, es mas facil:
x = 50 and 100
50 = 0100110
100 = 0010011
----------
0000010 =8
Por que da este resultado?
50 = 0100110
100 = 0010011
----------
0000010 =8
^^^^^^^
|||||||____> 0 y 1 son diferentes entonces 0
||||||_____> 1 y 1 son iguales entonces 1
|||||______> 1 y 0 son diferentes entonces 0
||||_______> 0 y 0 son iguales entonces 0
|||________> 0 y 1 son diferentes entonces 0
||_________> 1 y 0 son diferentes entonces 0
|__________> 0 y 0 son iguales entonces 0
x = 58 and 232
58 = 01011100
232 = 00010111
----------
00010100 =40
Por que da este resultado?
58 = 01011100
232 = 00010111
----------
00010100 =40
^^^^^^^^
||||||||____> 0 y 1 son diferentes entonces 0
|||||||_____> 0 y 1 son diferentes entonces 0
||||||______> 1 y 1 son iguales entonces 1
|||||_______> 1 y 0 son diferentes entonces 0
||||________> 1 y 1 son iguales entonces 1
|||_________> 0 y 0 son iguales entonces 0
||__________> 1 y 0 son diferentes entonces 0
|___________> 0 y 0 son iguales entonces 0
GRACIAS POR LEER!!!
HOLA!!!
LEE ARRIBA ^^^^^^
Ahi te actualice la explicacion, espero que entiendas, por si las dudas te dejo como funcionan:
OR es parecido solo que con que uno de los dos sea 1 en esa posicion sera 1.
XOR es parecido a OR pero solo devuelve 1 en esa posicion si uno de los 2 (no los dos, osea 1, 1 es 0, pero 1,0 o 0,1 es 1).
GRACIAS POR LEER!!!!
;-) ;-) ;-) lo entendi perfectamente pana!!! Gracias!!!
Solo me resta entender para q puedo utilizar o en q ocasiones usar el and en numeros :P gracias!!!
HOLA!!!
Primero, aca te dejo un reto donde Black y yo hicimos funciones que emulan los operadores binarios, hay una breve explicacion y estan los codigos, espero que entiendas ;) http://foro.elhacker.net/empty-t323992.0.html
Te pongo un ejemplo de para que sirve:
Saber si un numero es par o no:
Private Sub Form_Load()
For x = 0 To 100
If (x And 1) Then
Debug.Print "no_es_par " & x
Else
Debug.Print "si_es_par " & x
End If
Next
End Sub
GRACIAS POR LEER!!!
gracias pana me haz aclarado todo! Hasta lo previsto ;-) c t agradece mucho!
Solo aclaro que los numeros binarios de leen de derecha a izquierda mas no de izquierda a derecha
P.E.
Esto esta MAL.
58 = 01011100 <--- Este binario no es 58 realmente es el numero 92
232 = 00010111 <--- Este binario no es 232 realmente es el numero 23
----------
00010100 =40 <--- Este binario no es 40 realmente es el numero 20
Realmente es asi:
CORRECTO:
58 = 00111010
232 = 11101000
----------
00101000 =40
Esto es debida a que los 0 a la izquierda del ultimo 1 no tienen valor alguno pero si los 0 a la derecha
... (2a la N) ... 128 64 32 16 8 4 2 1 0
<-----------------------------------|
Dulces Lunas!¡.
HOLA!!!
Opss, no me di cuenta xD.
:P cuando lo hacia en papel siempre lo pensaba al reves de esto:
Cita de: BlackZeroX▓▓▒▒░░ en 8 Junio 2011, 04:29 AM
... (2a la N) ... 128 64 32 16 8 4 2 1 0
<-----------------------------------|
Igual como tambien leia al reves, no habia problema, los resultados me daban bien XD.
GRACIAS POR LEER!!!