/ / Comment Java traite-t-il les résultats des opérateurs au niveau du bit - Java, opérateurs au niveau du bit, bit à bit et bit à bit ou

Comment java gère les résultats des opérateurs binaires - java, bitwise-operators, bitwise et bitwise - ou

J'essaie de savoir comment java trouve que le résultat est -ve ou + ve pour les opérations au niveau du bit?

int x=-5;
int y=8;
System.out.println(x&y); //8
System.out.println(x|y); //-5

x->1 0 1 1 (2"s complement)
y->1 0 0 0
x & y -> 1 0 0 0 ->8
x | y -> 1 0 1 1 ->-5(2"s complement)

Comment java sait-il que 1 0 1 1 est -5?

pourquoi ne donne-t-il pas directement o / p comme 1 0 1 1 "s équivalent décimal 11?

Applique-t-il un complément de 2 "à chaque résultat?

J'ai vu le code de l'assemblée. Ce sont les instructions IAND et IOR.

Réponses:

4 pour la réponse № 1

Vous exécutez les opérateurs au niveau des bits sur des entiers 32 bits. Ainsi, le nombre "8" a vraiment beaucoup de zéros devant, tandis que "-5" en a beaucoup:

8  -> 0...01000
-5 -> 1...11011

Ainsi, Java n'a pas besoin de "savoir" quoi que ce soit à propos dele résultat ou les opérandes des opérations de bitwiese. Le "8" est un nombre de 32 bits qui commence par un 0, il est donc positif. Le "-5" est un nombre de 32 bits qui commence par un "1", il est donc négatif.

Alors, la réponse à votre question

Applique-t-il un complément de 2 "à chaque résultat?

is: Oui, puisque tous les entiers sont signés numériquement en Java, en utilisant le complément de 2 ".