/ / Différence entre bits ou inclus et exclusif ou en java - java, opérateurs, opérateurs au niveau des bits

Différence entre bits ou inclusifs et exclusifs ou en java - java, opérateurs, opérateurs au niveau du bit

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 № 1

XOR 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