Fórum Intrução lt;XORgt; O Que Ela quot;Fazquot;??? #202947
25/12/2003
0
Alguem Pode Me Dar Um Exemplo. Obrigado.
Marco Salles
Curtir tópico
+ 0Posts
25/12/2003
Edilcimar
Gostei + 0
26/12/2003
::d::a::m::m::i::t::
Gostei + 0
26/12/2003
Beppe
Sim, mas para A [b:be71b1a07c]xor[/b:be71b1a07c] B, apenas se A e B forem expressões booleanas.
Tabelas verdade:
Boolean XOR | False | True ---------------------- False | False | True ---------------------- True | True | False Inteiro XOR | 0 | 1 ------------ 0 | 0 | 1 ------------ 1 | 1 | 0
Quando aplicado a inteiro, o operador XOR compara bit a bit as expressões, e o bit resultante está conforme a tabela verdade.
Gostei + 0
28/12/2003
Marco Salles
Sim, mas para A [b:1c4cfbda87]xor[/b:1c4cfbda87] B, apenas se A e B forem expressões booleanas.
Tabelas verdade:
Boolean XOR | False | True ---------------------- False | False | True ---------------------- True | True | False Inteiro XOR | 0 | 1 ------------ 0 | 0 | 0 ------------ 1 | 1 | 0
Quando aplicado a inteiro, o operador XOR compara bit a bit as expressões, e o bit resultante está conforme a tabela verdade.[/quote:1c4cfbda87]
Eu Recordeim-me a Pouco , Dos Tempos Em Que Fiz Engenharia Que a
Função Xor = ((X)And(Not(Y))OR((not(X)And(Y)) O Que Siginifica Em Outras Palavras Que Será Verdadeiro Se Apenas Umas Das Sentenças For Verdadeira. O Beep Levantou Uma Tabela Verdade Onde As ´Coisas´ Se Comportam De Maneira Diferente. Pois Bem, Sem Levantar Dúvidas Sobre o Vasto Conhecimento Do Nosso Amigo(Que Esta Sempre Nos Socorrendo) Gostaria De Aprofundar Um Pouco Mais No Assunto.
Por Curiosidade Escrevi O Código Abaixo No Evento De Um Botaõ.
PS:Não Sei Nem Se Posso Escrever, Mas o Projeto Compilo e Vamos Embora....
//Evento OnClick De Um Botão:
var
Res:Integer;
Begin
Res:=0 Xor 1;
ShowMessage(IntToStr(Res));//a Resposta Foi ´1´ Diferente Da Tabela
End;
Continuei a Escrever...
var
Res:Integer;
Begin
Res:=01 Xor 11;
ShowMessage(IntToStr(Res));//a Resposta Foi ´10´ Diferente Da Tabela
End;
Continuei a Escrever...
var
Res:Integer;
Begin
Res:=011 Xor 110;
ShowMessage(IntToStr(Res));//a Resposta Foi ´101´ Diferente Da Tabela
End;
Eu Pararia De Ficar Testando e Acharia Que o Beep Deve Ter Feito Alguma Confusão e Daria O Caso Por Encerrado. Mas Aconteceu Um Fato Novo Que Confesso Me Deixou Sem Resposta. Foi Quando Eu Escrevi a Seguinte Linha De Código.
var
Res:Integer;
Begin
Res:=0110 Xor 1100;
ShowMessage(IntToStr(Res));//a Resposta Foi ´1058´ Diferente Da
Tabela e De Toda
Lógica......
End;
Apareceu 1058. Alguem Sabe o Que Siginifica Isto :?: .Na Verdade O Que a Função Xop Faz. :?: Alguem Pode Dar Uma Explicação Dos Fatos :?:
OBS:Quero Levantar os Vastos Conhecimentos Apresentados Pelo Nosso
Companheiro Beep Ao Longo De Todo Forum. Momento Nenhum e
Nem Tenho Interesse e Condições Para Afrontar Conhecimentos De
Ninguem. Sou Apenas Mais Um No Meio Dessa Massa Que Gosta Do
Que Do Que Faz . Muito Obrigado Beep, Sua Opinião é Sempre Muito
Importante.
Gostei + 0
28/12/2003
Cebikyn
0110 : 00001101110
xor
1100 : 10001001100
resulta em: 10000100010, que em decimais é 1058.
Gostei + 0
28/12/2003
Marco Salles
Desculpe Amigo , mas Voce Esta Dando Uma Resposta De Trâs Para a Frente. Voce Vez Uma Decodificação.
Mas O Que Que ´0110´ Tem a Ver Com ´00001101110´ :?: :?:
Gostei + 0
28/12/2003
Beppe
Eu editei meu tópico anterior para consertar. Na tabela verdade de inteiros, eu tinha colocado 0 XOR 1 como 0 por descuido. Na verdade, 0 XOR 1 é 1.
E esqueci de dizer de que estava usando a base [i:2d45aac204]binária[/i:2d45aac204], que representa qualquer quantia através de 0s e 1s. Achei que falando ´bit a bit´ era o suficiente.
Eu acho até interessante alguns dos resultados que mostrou. Mas o processador(leia: a unidade lógica dele) não sabe sobre números decimais. A representação decimal é usada para nossa comodidade. Logo, quem quiser aplicar um operador como o XOR numa sequência de dígitos, precisa convertê-la para um base múltipla de 2, a base binária(base 2) sendo a mais simples delas.
Ex:
Decimal: 1234 XOR 4321
Em binário:
0010011010010
1000011100001
------------------
1010000110011 = 5171(base 10)
Dica: use a calculadora em modo científico e alterne entre as bases.
Só para complementar, em expressões booleanas, o operador [b:2d45aac204]XOR[/b:2d45aac204] equivale ao operador [b:2d45aac204]<>[/b:2d45aac204](diferente de).
Tentei ser mais claro agora, mas se alguém ficou com alguma dúvida, terei prazer em esclarecer. :)
Gostei + 0
28/12/2003
Edilcimar
Gostei + 0
28/12/2003
Cebikyn
[quote:d3aee7c902=´Marco Salles´]Desculpe Amigo , mas Voce Esta Dando Uma Resposta De Trâs Para a Frente. Voce Vez Uma Decodificação.
Mas O Que Que ´0110´ Tem a Ver Com ´00001101110´ :?: :?:[/quote:d3aee7c902]
Gostei + 0
28/12/2003
Marco Salles
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)