Les opérateurs bit à bit sont censés parcourir des variables et opérer sur elles bit par 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.
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 grand qu'un octet ou aussi petit qu'un bit.
Quel est l'effet de l'utilisation d'un opérateur binaire sur un booléen ? La JVM le transforme-t-elle en un opérateur logique normal et continue-t-elle ? Traite-t-elle le booléen comme une entité à un seul bit pour les besoins de l'opération ? Ou bien le résultat est-il indéfini, tout comme la taille d'un booléen ?
1 votes
Je pense que l'on ne peut pas utiliser un opérateur bitwise 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.
4 votes
Vous pouvez utiliser certains d'entre eux, nous venons de découvrir un | utilisé dans notre ancien code. Nous allons le supprimer, mais ce code a été compilé et a fonctionné.
9 votes
Puisque l'un court-circuite et l'autre pas (voir la réponse de mobrule), avant de changer le | en ||, vous pouvez vous assurer que les expressions booléennes suivantes n'ont pas d'effets secondaires que le programmeur original avait l'intention de toujours exécuter.