Título: Cuál es la lógica del operador XOR Publicado por: okik en 29 Junio 2015, 18:21 pm 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 :-( Título: Re: Cuál es la lógica del operador XOR Publicado por: engel lex en 29 Junio 2015, 18:26 pm 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) Código: 5 = 101 Título: Re: Cuál es la lógica del operador XOR Publicado por: Gh057 en 29 Junio 2015, 18:31 pm 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 Título: Re: Cuál es la lógica del operador XOR Publicado por: okik en 29 Junio 2015, 18:35 pm 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é... Código
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 Título: Re: Cuál es la lógica del operador XOR Publicado por: engel lex en 29 Junio 2015, 18:46 pm Citar 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 Título: Re: Cuál es la lógica del operador XOR Publicado por: Gh057 en 29 Junio 2015, 19:00 pm 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 Título: Re: Cuál es la lógica del operador XOR Publicado por: okik en 29 Junio 2015, 19:07 pm 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. :silbar:
En fin gracias los dos Vale ahora entiendo, gracias a esta explicación más mundana: Código
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. Código
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 (https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole) Título: Re: Cuál es la lógica del operador XOR Publicado por: engel lex en 29 Junio 2015, 19:16 pm 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 Código: if(codigo xor 1){ Título: Re: Cuál es la lógica del operador XOR Publicado por: Gh057 en 29 Junio 2015, 19:20 pm 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. Título: Re: Cuál es la lógica del operador XOR Publicado por: okik en 29 Junio 2015, 19:27 pm 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. |