XOR Dúvida?!

5 respostas
arm.jr

Tenho dois números binarios > Ex: 100010 e 110010, eu queria pegar posição por posição e fazer um XOR entre eles.

Eu queria saber se existe algum método que faz isso? Ou vou ter que fazer usando um IF mesmo?!

EX:

[color=red]100010 -> 1 0 0 …
XOR
110010 -> 1 1 0 …

RESULTADO -> 0 1 0 …[/color]

5 Respostas

dsfextreme

arm.jr:
Tenho dois números binarios > Ex: 100010 e 110010, eu queria pegar posição por posição e fazer um XOR entre eles.

Eu queria saber se existe algum método que faz isso? Ou vou ter que fazer usando um IF mesmo?!

EX:

[color=red]100010 -> 1 0 0 …
XOR
110010 -> 1 1 0 …

RESULTADO -> 0 1 0 …[/color]

Hi !
Acabei de responder seu post no portal java…
Não era aquilo que vc queria não ?
:arrow: Resposta

Um abraço !

arm.jr

Amigo eu acho que não e bem isso!!

Voce esta ligado em lógica matematica o operador XOR, que o pessoal chama de OU EXCLUSIVO.

EX:

V XOR V -> F
F XOR V -> V
V XOR F -> V
F XOR F -> F

Ta ligado.

Neste meu exemplo eu to usando o 0 (zero) como falso e 1 como verdadeiro.

E assim pega dois números binários e vai resolvendo, posição por posição, ta ligado!

P

Use os operadores bit a bit.

Em Java existe tanto para AND (&), OR(|) como XOR(^).

Dai fica direto, basta pegar o primeiro número com o segundo, como por exemplo:
.
.
.

int num1 = 34; // em binário = 100010
 int num2 = 50; // em binário = 110010

 int resultado = num1 ^ num2; // em binário = 010000

 .
 .

Só para verificar:

System.out.println( Integer.toBinaryString( num1 ) );
    System.out.println( Integer.toBinaryString( num2 ) );
    System.out.println( Integer.toBinaryString( num1 ^ num2 )  );

Espero ter ajudado.

arm.jr

E isso mesmo amigo, valeu!

arm.jr

pensadorx seguindo esse exemplo que você me passou, estou com outra dúvida.

Tenho um array com números inteiros e queria fazer o XOR entre eles.
Eu ja tentei, fazendo um FOR mas não ta dando muito certo.

Você pode me dar uma ajuda?!!

Criado 2 de junho de 2006
Ultima resposta 5 de jun. de 2006
Respostas 5
Participantes 3