Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Conversion de type — Wikipédia
Conversion de type — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir conversion.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (janvier 2025).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Une conversion en Java de la valeur 5 entière en caractère.

En informatique la conversion de type, le transtypage ou la coercition (cast en anglais) est le fait de convertir une valeur d'un type (source) dans un autre (cible). On distingue trois formes de conversion (dont un seul mérite vraiment le nom de conversion) suivant la relation de sous-typage existant entre les types source et cible :

  • la conversion entre types incomparables ;
  • la coercition ascendante (transtypage vers le haut) ;
  • la coercition descendante (transtypage vers le bas).

Conversion entre types incomparables

[modifier | modifier le code]

C'est la coercition la plus ancienne historiquement. Elle consiste (généralement) à transformer physiquement la représentation binaire d'une variable pour la faire correspondre au type de la cible. En langage C, la conversion d'une variable de type entier (usuellement codé en complément à deux) vers un type réel (usuellement codé selon la norme IEEE) est un exemple de ce genre de conversion. Elle est à manier avec prudence car elle n'est pas toujours possible et peut amener des résultats non prévus.

Coercition ascendante

[modifier | modifier le code]

Dans le cadre d'un langage objet, la coercition ascendante permet de prendre une instance de la sous-classe pour une instance directe de la super-classe. Cela peut servir à empêcher l'utilisation d'une méthode m spécifique à la sous-classe B, pour la remplacer par la méthode m d'une super-classe A (en considérant bien sûr que B est une sous-classe de A).

Dans d'autres langages utilisant le sous-typage, mais pas le mécanisme d'héritage, la coercition ascendante permet par exemple à une fonction d'accepter plusieurs types d'arguments, sous-types de l'argument déclaré.

Coercition descendante

[modifier | modifier le code]

Elle consiste à convertir le type statique de la valeur vers son type dynamique. Elle permet ainsi de faire réapparaître statiquement le type dynamique de l'objet. Elle est par exemple utilisée en Java lors de l'utilisation de collection.

Les coercitions ascendante et descendante ne sont pas une réelle conversion de type dans le sens où il n'y a pas de transformation physique de la valeur. Il s'agit essentiellement d'une indication donnée au compilateur sur la façon dont il doit compiler un certain envoi de message.

Exemple

[modifier | modifier le code]

Une fonction d'addition pourrait accepter n'importe quelle valeur numérique. En supposant qu'il existe un type Numeric et deux de ses sous-types, Int et Double, voici un exemple en Scala de code utilisant les coercitions:

add(a: Numeric, b: Numeric): Numeric = a + b
a: Double = 1.2
b: Int = 3
res: Double = add(a,b) // res: Double = (Double)add((Numeric)a, (Numeric)b)

Notons que l'addition dans la fonction add nécessite probablement une conversion entre types incompatibles, que l'appel à la fonction utilise deux coercitions ascendantes et que l'affectation à res utilise la coercition descendante.

Voir aussi

[modifier | modifier le code]
  • Les opérateurs dynamic_cast et static_cast (en) en langage C++.
v · m
Types de données
Non interprétée
  • Bit
  • Byte
  • Trit
  • Tryte
  • Mot
Numérique
  • Bignum
  • Complexe (en)
  • Décimal (en)
  • Virgule fixe
  • Virgule flottante
  • Entier
    • Non signé (en)
  • Intervalle
  • Rationnel (en)
Texte brut
  • Caractère
  • Chaîne de caractères
Pointeur
  • Adressage mémoire
    • Physique
    • Virtuelle
  • Référence
Composite (en)
  • Type algébrique de données
    • Généralisé
  • Tableau
  • Tableau associatif
  • Classe
  • Dépendant
  • Égalité (en)
  • Inductive (en)
  • Liste
  • Objet
    • Métaobjet
  • Option (en)
  • Produit
    • Enregistrement
  • Ensemble (set)
  • Vecteur
  • Union (en)
    • Disjointe
Autres
  • Booléen
  • Type vide
  • Collection
  • Conteneur
  • Type énuméré
  • Exception
  • Fonction
  • Opaque (en)
  • Type récursif
  • Sémaphore
  • Flux
  • Top (en)
  • Type class (en)
  • Type unité
  • Void
Articles liés
  • Type abstrait
  • Structure de données
  • Généricité
  • Kind (en)
    • Métaclasse
  • Parametric polymorphism (en)
  • Primitive data type (en)
  • Interface
  • Subtyping (en)
  • Type constructor (en)
  • Conversion de type
  • Type system (en)
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Conversion_de_type&oldid=222059774 ».
Catégorie :
  • Théorie des types
Catégories cachées :
  • Article manquant de références depuis janvier 2025
  • Article manquant de références/Liste complète
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id