Maison >Java >javaDidacticiel >Pourquoi un entier Java converti en octet donne-t-il -124 alors qu'il vaut 132 ?
Le comportement curieux de Java dans la conversion de type : dévoilement du mystère -124
Lorsque vous tentez d'attribuer un entier à un octet en Java, un intriguant Une observation se pose : une valeur entière de 132 est rendue comme -124 lorsqu'elle est convertie en octet. Ce résultat énigmatique peut paraître déroutant à première vue.
Explorer le puzzle du complément à deux
Pour résoudre cette énigme, il est crucial de se plonger dans les types de données fondamentaux de Java et leur représentation. En Java, les types entiers tels que int et byte sont signés, en utilisant la notation complément à deux. Avec cette notation, le bit le plus significatif signifie le signe, conservant sa valeur en tant que bit le plus significatif à mesure que le nombre est étendu à des tailles de bits plus grandes.
À la recherche du bonheur non signé
Dans la plupart des scénarios, il est souhaitable d'interpréter l'octet comme une valeur non signée, en supprimant toute information de signe. Ceci peut être réalisé grâce à des opérations au niveau du bit. Par exemple, appliquer un ET au niveau du bit avec un masque de 0xff à l'octet signé élimine efficacement les bits de signe, révélant la valeur non signée.
Le rituel de démasquage dévoilé
Le le processus se déroule comme suit :
Cette technique permet une extraction transparente des valeurs d'octets non signés à partir d'entiers signés.
Conclusion
Conversion de Java à partir de int to byte peut introduire des comportements subtils mais fascinants en raison de la notation complémentaire à deux sous-jacente. Comprendre ces nuances aide à percer le mystère derrière la sortie inattendue -124, permettant ainsi aux développeurs de manipuler efficacement les types de données dans leurs applications Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!