Les opérations arithmétiques du type de données Char de Java
Lorsque vous travaillez avec des données char en Java, il est important de comprendre le comportement des opérations arithmétiques. Considérons l'expression suivante :
'a' + 'b'
Contrairement à ce que l'on pourrait initialement supposer, le résultat de cet ajout n'est pas un char, mais un int. Cela est dû aux règles de promotion numérique binaire de Java, qui stipulent que lorsque deux caractères sont additionnés, ils sont tous deux convertis en entiers avant que l'opération ne soit effectuée.
Cette promotion se produit parce que Java ne dispose pas d'instructions arithmétiques dédiées pour les données plus petites. des types comme les caractères et les octets. Pour simuler des opérations sur ces types plus petits, le compilateur a recours à des instructions arithmétiques int.
Le résultat int de 'a' 'b' est 195, car les points de code Unicode pour 'a' et 'b' sont 97. et 98, respectivement.
Cependant, il convient de noter que ce comportement ne s'applique pas aux opérateurs d'affectation composés comme =. Par exemple, le code suivant entraîne une erreur de compilation :
char x = 1, y = 2; x = x + y; // Error: possible loss of precision
Pour éviter cette erreur, une conversion explicite en char est requise :
x = (char)(x + y);
Alternativement, les opérateurs d'affectation composés peuvent être utilisés, qui effectuent la conversion automatiquement :
x += y;
Pour déterminer le type de données de l'expression 'a' 'b', les éléments suivants peuvent être used:
System.out.println(((Object)('a' + 'b')).getClass());
Cela imprimera la classe java.lang.Integer, confirmant que le résultat est un int.
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!