Les opérateurs bit à bit sont supposés déplacer des variables et les exploiter bit à bit. Dans le cas des entiers, des longs, des caractères, cela a du sens. Ces variables peuvent contenir toute la gamme de valeurs imposées par leur taille.Effet d'un opérateur bit à bit sur un booléen en Java
Dans le cas des booléens, cependant, un booléen ne peut contenir que deux valeurs. 1 = vrai ou 0 = faux. Mais la taille du booléen n'est pas définie. Il peut être aussi gros qu'un octet ou un petit peu.
Alors, quel est l'effet de l'utilisation d'un opérateur bitwise sur un booléen? La JVM la traduit-elle essentiellement par un opérateur logique normal et passe-t-elle à autre chose? Traite-t-il le booléen comme une entité binaire unique dans le but de l'opération? Ou le résultat est-il indéfini avec la taille d'un booléen?
Je pense que vous ne pouvez pas utiliser un opérateur au niveau du bit sur un booléen. Seulement sur les nombres. Je suis sûr que ~ ne fonctionnera pas, je ne sais pas ce qu'il en est des autres opérateurs. –
Vous pouvez utiliser certains d'entre eux, nous venons de découvrir un | utilisé dans notre code existant. Nous l'enlevons, mais ce code a été compilé et a fonctionné. –
Puisque l'un est en court-circuit et l'autre non (voir la réponse de mobrule), avant de changer le | à || vous pouvez vous assurer que les expressions booléennes suivantes n'ont aucun effet secondaire que le programmeur d'origine a l'intention de toujours exécuter. –