ae pessoal que duvida eu fiquei com esse metodo pq o ultimo println eh true e o primeiro eh false :?
class FimOper{
public static void main(String [] aad){
System.out.println((2<3)^(4>3));
System.out.println((2<3)^(4<3));
}
}
ae pessoal que duvida eu fiquei com esse metodo pq o ultimo println eh true e o primeiro eh false :?
class FimOper{
public static void main(String [] aad){
System.out.println((2<3)^(4>3));
System.out.println((2<3)^(4<3));
}
}
Fala Camilo, blz?
Cara, o operador lógico XOR retorna verdadeiro apenas se os dois operandos forem diferentes (true/false ou false/true). Se os operandos forem iguais (true/true ou false/false) o retorno dele é false.
Tabela verdade do XOR
1 2 Res
F F False
T F True
F T True
T T False
Sacou?
pq o xor da true se for operadores opostos…
(2<3)^(4>3) é igual a “true ^ true”, que se aplicar o xor da false.
(2<3)^(4<3) é igual a “true ^ false”, que com xor fica true
ahh saquei a kathy nao explicou assim ela eh louca… falou que se um operando for true ele retorna true… mais ele so vai retornar caso seja 1 true/false ou false/true, mais se tiver duas verdades ou duas falsidades ele retorna false confere?
agora eu ja vi a seguinte sintaxe em simulados é valido:
System.out.println((10>5)XOR(10==11));
ou ^ representa o XOR?
Isso.
Agora para continuar estudando vc podia trocar o operador > para >> e entender o que acontence
System.out.println((2<<3)^(4>>3));
System.out.println((2<<3)^(4<<3));
vc me matou ai, dar 16 e 48 agora pq… acho q a kathy nao abordou isso ai espero q ela venha abordar hehe!! mais ricardo em questao da minha outra pergunta la usar o XOR eh um erro de compilacao ne? devo usar o ^ que representa o XOR…
isso, o certo é ^
e pq aquele codigo gerou la 16 e 48?
para te explicar vai demorar um pouco…
da uma pesquisada no google sobre deslocamento de bits e manda suas duvidas aqui…, se nao conseguir resolver te ajudo blz?
tranquilo vou dar uma pesquisada acho que o deitel fala sobre vou funçar ele
muito bom o post…
outro ex:
public static void testarXOR(){
//if (11 >= 10 ^ 2 <= 22){// true e true => false
//if (11 <= 10 ^ 2 >= 22){ //false e false => false
//if (11 <= 10 ^ 2 >= 1){ //false e true => true
if (11 >= 10 ^ 2 <= 1){ //true e false => true
System.out.println("Sim");
}
else {
System.out.println("Não");
}
}
alguém pode me dizer a diferença de eu usar ^ ou || ???
^ e || são duas coisas completamente diferentes.
a ^ b :