next up previous contents index
suivant: Communication entre application et monter: Opérateurs et expressions précédent: Conversions arithmétiques   Table des matières   Index


Transtypage

Si 13#13 est un type et 19#19 une expression, l'expression 20#20 est appelée expression de transtypage (en anglais informatique, cast). Elle n'est généralement définie que si 13#13 est un sur-type (transtypage ascendant) ou un sous-type (transtypage descendant) du type de 19#19. Quand elle est définie, l'expression 20#20 est toujours de type 13#13.

Par exemple, pour effectuer une opération flottante quand les opérandes sont entières, il faut d'abord appliquer un transtypage en double à l'un des opérandes : alors que 5/2, c'est-à-dire la division entière de 5 par 2 a pour valeur 2, (double) 5/(double) 2 a pour valeur 21#21, car c'est la division flottante de 5.0 par 2.0. Notons que (double) 5/2 et 5/(double) 2 ont aussi pour valeur 21#21, car il y a promotion de 2 en 2.0 dans le premier cas, de 5 en 5.0 dans le second (voir § 1.4).

Il existe des transtypages entre tous les types numériques. Pour ces types, l'évaluation d'une expression de transtypage réalise une conversion, c'est-à-dire une transformation, de la valeur. Les conversions descendantes, par exemple de int vers byte, ou de double vers int, peuvent conduire à une perte d'information par troncature : par exemple, la valeur de (byte) 1000 est -24, celle de (int) 1.0E10 est 2147483647. Les conversions entre float et int peuvent aussi induire un perte d'information, bien que ces deux types aient la même taille : par exemple, la valeur de (float) 1234567890 est 23456794E9.


next up previous contents index
suivant: Communication entre application et monter: Opérateurs et expressions précédent: Conversions arithmétiques   Table des matières   Index
Rene' LALEMENT 2002-11-07