Autor
|
Tema: Cuál es la lógica del operador XOR (Leído 4,644 veces)
|
okik
Desconectado
Mensajes: 462
|
Hola Bueno, pues eso. ¿cuál es la lógica? Vamos a ver de: 5 xor 3 devuelve 6 Según la ayuda de MSDN es porque como 5 = 101 (en binario ) y 3 = 11 pues devuelve 110 que es el equivalente binario de 6. En fin, menuda explicación chorra. Yo creo que el/la que lo puso no tenía ni idea. Y si la tenía, se ha explicado como por el culo. Por que ha dicho lo mismo pero con binarios. Y luego está esto: "Realiza una exclusión lógica entre dos expresiones de tipo Boolean o bien una exclusión bit a bit entre dos expresiones numéricas." Más de lo mismo, es peor que el lenguaje administrativo. Una ayudita porfa
|
|
« Última modificación: 29 Junio 2015, 19:28 pm por okik »
|
En línea
|
|
|
|
engel lex
|
tienes que estudiar operaciones en binario o por contraparte lógica proposicional, las operaciones binarias carecen de todo sentido matematico (viendolo en sistema decimal) pero te ahorro la explicación larga (aunque necesitarás estudiar lo ya dicho si quieres entender más) los operarios binarios se manejan por "tabla de verdad" 1 xor 1 = 0 1 xor 0 = 1 0 xor 1 = 1 0 xor 0 = 0 las operaicones binarias se hacen bit a bit (dah) 5 = 101 3 = 11, para ajustarlo al 5, 011
101 011
1 xor 0 = 1 0 xor 1 = 1 1 xor 1 = 0
respusta 110 = 6
|
|
« Última modificación: 29 Junio 2015, 18:29 pm por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
Buen día okik, en un sentido formal, una exclusión entre dos proposiciones es un conector lógico cuyo valor de la verdad resulta falso sólo si ambas proposiciones son coincidentes, y cierto de cualquier otra forma. Existen diferentes contextos dónde se utiliza la disyunciones o exclusiones lógicas, como por ejemplo circuitos... -el inclusivo se amplía a verdadero excepto en el caso que ambas proposiciones sean falsas- en bits el ejemplo que diste sería:
101 011 ---- 110
Saludos
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
okik
Desconectado
Mensajes: 462
|
Gracias Gh057 Y [/b]engel lex[/b], me lo has dejado más claro, voy entendiendo la lógica. He comprendido lo de bit a bit con el 101 y 011, se compara dígito por dígito. Pero porqué... 1 xor 0 = 1 0 xor 1 = 1 1 xor 1 = 0
es decir ¿porqué 1 xor 0 es 1?, lo entendería se fuera 1+0 =1 ¿Porqué 0 xor 1 es 1? como antes si fuera 0+1= 1 Pero llega el 1 xor 1, ¿Porqué diantres es 0? Si resto rompe la regla anterior Sl2
y 1 + 1 = es 10 en binario
|
|
« Última modificación: 29 Junio 2015, 18:55 pm por okik »
|
En línea
|
|
|
|
engel lex
|
es decir ¿porqué 1 xor 0 es 1?, lo entendería se fuera 1+0 =1 ¿Porqué 0 xor 1 es 1? como antes si fuera 0+1= 1 Pero llega el 1 xor 1, ¿Porqué diantres es 0? Si resto rompe la regla anterior me siento completamente ignorado -.- xor significa "exclusivamente o" es decir "es es hombre o es mujer, pero no puede ser ambos al mismo tiempo y siempre tinene que ser uno" lee sobre logica proposicional -.- esto no es algo que no pueda ser explicado en los primeros 2 parrafos de cualquier texto de logica
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
Justamente por lo que te he indicado anteriormente; si tomas el bit 1 como verdadero, y 0 como falso cualquier proposición p xor q mientras sean diferentes - no importa el orden- te dará 1. Sinó 0, o lo que es lo mismo, siguiendo el criterio anterior, falso.
-tal cual lo indicado por engel lex-
Te recomiendo leer sobre álgebra de boole, tablas de verdad, y sus aplicaciones tanto en circuitos o en lógica proposicional.
Con esos conceptos con solo dos proposiciones por ejemplo p q, y como interactúan con los conectores lógicos AND OR XOR o sus negaciones (¬p ¬q) podrás comprender luego las mismas implementadas en el manejo de bits. Saludos
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
okik
Desconectado
Mensajes: 462
|
engel lex No te ignoro, de hecho el comentario anterior era dirigido a ti, lo que pasa es que hice un copia y pega el alias y no me di cuenta que no era tuyo. En fin gracias los dos Vale ahora entiendo, gracias a esta explicación más mundana: "es es hombre o es mujer, pero no puede ser ambos al mismo tiempo y siempre tinene que ser uno"
Sinceramente, ahora que lo veo, no sabría, en programación como usar esto. He visto códigos que lo usaban y sabía lo que hacían, es decir, el objetivo de su uso, pero no como opera este operador. Por ejemplo: Para pasar el valor A a B y el valor B a A. A= 5 B= 6 A = A Xor B B = B Xor A A = A Xor B Ahora A= 6 y B= 5
No entiendo qué mente matemática retorcida puede ultramar tal propósito solo para pasar lo de A a B y viceversa, ni aún entendiendo el funcionamiento de dicho operador. En fin, será cosa de genios. Nunca he estudiado lógica proposicional, de hecho aunque he estudiado matemáticas, no tenía ni idea de esta rama, sí de la lógica en sí (aunque no la he tocado), pero no de Lógica proposicional.
Álgebra de Boole, lo explica genial gracias. A veces uno no sabe por donde tirar si no pregunta https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole
|
|
« Última modificación: 29 Junio 2015, 19:14 pm por okik »
|
En línea
|
|
|
|
engel lex
|
el codigo que mostraste es puro reto... (intercambio con solo 2 variables) el xor no es una operación común, se usa por lo general para cifrados y cosas similares... se puede usar en un IF si deseas que se cumpla una sola condicion otro uso es para simplificar permisos, por ejemplo en linux 777 es permiso de todo para todos, se explica UGO (usuario, grupo, otros) 1(001) = leer 2(010) = escribir 4(100) = ejecutar así que si quieres dar permisos de todo (111) es 7 para leerlo harías if(codigo xor 1){ puede_leer() } if(codigo xor 2){ puede_escribir() } if(codigo xor 4){ puede_ejecutar() }
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
Huy lindo ejemplo... XD trataré de ampliarlo:
si A es 5 (base 10) -> 101 (2) si B es 6 (base 10) -> 110 (2)
entonces si A = A XOR B 101 110 ---- 011 (lo almacenas en A)
idem si B = A XOR B 011 110 ---- 101 (lo almacenas en B)
ahora bien, si haces nuevamente A = A XOR B... 011 101 ---- 110
Entonces... ahora A será 110 o sea 6, y B 101, que equivalea 5 en decimal. XD
Te recomiendo leer sobre el tema, antes de seguir con la parte práctica. Cualquier consulta, si puedo intentaré responderla. Un cordial saludo.
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
okik
Desconectado
Mensajes: 462
|
Huy lindo ejemplo... XD trataré de ampliarlo:
si A es 5 (base 10) -> 101 (2) si B es 6 (base 10) -> 110 (2)
entonces si A = A XOR B 101 110 ---- 011 (lo almacenas en A)
idem si B = A XOR B 011 110 ---- 101 (lo almacenas en B)
ahora bien, si haces nuevamente A = A XOR B... 011 101 ---- 110
Entonces... ahora A será 110 o sea 6, y B 101, que equivalea 5 en decimal. XD
Te recomiendo leer sobre el tema, antes de seguir con la parte práctica. Cualquier consulta, si puedo intentaré responderla. Un cordial saludo.
Ahora mismo estaba yo descomponiendo mi ejemplo como lo has hecho tú, la verdad es que visto así se ve claro. Pero de todos modos hay que ser un poco lumbreras para tirar por ese camino, o por lo menos tener mucha práctica. Gracias de nuevo a los dos.
|
|
|
En línea
|
|
|
|
|
|