elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Cuál es la lógica del operador XOR
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cuál es la lógica del operador XOR  (Leído 4,644 veces)
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Cuál es la lógica del operador XOR
« 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
:-(


« Última modificación: 29 Junio 2015, 19:28 pm por okik » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #1 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
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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #2 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
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #3 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
  1. 1 xor 0 = 1
  2. 0 xor 1 = 1
  3. 1 xor 1 = 0
  4.  

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #4 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
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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #5 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
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #6 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
  1. "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.


Código
  1. A= 5
  2. B= 6
  3.  
  4. A = A Xor B
  5. B = B Xor A
  6. A = A Xor B
  7.  
  8. 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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #7 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){
    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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #8 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.
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Cuál es la lógica del operador XOR
« Respuesta #9 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.

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Logica
Dudas Generales
anarquistadel89 2 3,313 Último mensaje 22 Octubre 2011, 00:43 am
por anarquistadel89
Problema operador asignación y operador asignación [struct] c++
Programación C/C++
luiggy2 2 3,046 Último mensaje 16 Octubre 2013, 23:35 pm
por luiggy2
¿Cuál es el operador con más cobertura 4G del momento?
Noticias
wolfbcn 0 1,556 Último mensaje 20 Mayo 2016, 02:58 am
por wolfbcn
cual es la logica de una variable como condicion?
Programación C/C++
Pedro122h 2 4,298 Último mensaje 14 Abril 2022, 01:31 am
por Pedro122h
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines