public class Operators {
public static void main(String[] args) {
int a = 12;
System.out.println("Bitwise AND:"+(12&12));
System.out.println("Bitwise inclusive OR:"+(12|12));
System.out.println("Bitwise exclusive OR:"+(12^12));
}
}
OUTPUT:
Bitwise AND:12
Bitwise inclusive OR:12
Bitwise exclusive OR:0
Je comprends les deux premiers, mais pas le troisième.
Réponses:
16 pour la réponse № 1XOR indique si chaque bit est différent.
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
En d'autres termes "soit mais pas les deux"
0011 XOR 0101 = 0110
4 pour la réponse № 2
BITWISE INCLUSIVE OU (|) signifie normal ou opération ,
BITWISEE EXCLUSIVE OR (^) signifie xor opération
3 pour la réponse № 3
Le troisième est une opération XOR (Xclusive-OR)
Il dit, OU devrait être exclusivement: où similaire sera Faux (0) et dissemblable sera vrai (1).
Donc 12 en binaire serait 1100
Alors, exécutez bit par bit XOR ici:
1 1 0 0
1 1 0 0
---------
0 0 0 0
---------
Chaque colonne a le même chiffre, les deux sont 1 "ou les deux sont 0" XOR dit que les deux devraient être différents. D'où tous les zéros
1 pour la réponse № 4
Exclusif ou (XOR
) est défini comme:
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
C'est, c'est 0
quand deux valeurs sont identiques, 1
si elles sont différentes.
Donc, étant donné deux modèles de bits qui sont exactement égaux, chaque bit XORed sera évalué à 0
, comme chaque bit aura soit 1
dans les deux positions, ou 0
dans les deux positions.
-2 pour la réponse № 5
comme les opérateurs que vous avez utilisés sont des opérateurs au niveau du bit, les opérandes sont convertis en bits et ensuite l'opérateur agit sur eux.
ici 12 -> 1100 en chiffres binaires (bits)
et les opérations des opérateurs & (AND), | (OR) et ^ (Exclusive OR ou XOR) sont les suivantes:
Un B & | ^
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
alors quand vous jouez 12 ^ 12:
A = 1100
B = 1100
A B ^
1 1 0
1 1 0
0 0 0
0 0 0
et 0000 -> 0 en décimal
par conséquent vous obtenez 12 ^ 12 = 0 dans votre troisième réponse