Conversia de tip este o formă de tip punning, o tehnică utilizată în informatică și programare de software de calculator în care tipul de date al unei anumite entități este schimbat într-un tip de date diferit. Conceptul de tip punning a venit să funcționeze în jurul sistemului de tip specificat al unui limbaj de programare, astfel încât să poată fi obținute anumite efecte care altfel ar fi dificil de realizat în limitele definiției formale a limbajului de programare. Conversia tipului, fiind cea mai comună formă de joc de cuvinte, este posibilă în aproape toate limbajele de programare, deși unele limbi oferă metode suplimentare de tipare, cum ar fi unirea sau reinterpretarea. Unele ghiduri de stil de programare sugerează împotriva jocurilor de cuvinte, chiar dacă conversia tipului este oricum folosită frecvent.
Conversia tipului este uneori denumită tip casting sau constrângere, în funcție de limbajul de programare utilizat. Fiecare limbaj de programare are reguli cu privire la modul în care conversia de tip poate fi utilizată cu succes. În general, conversiile pot avea loc fie pe tipuri fundamentale, fie pe obiecte.
Există mai multe tipuri de date fundamentale sau clase de tipuri de date. Un tip de date obișnuit utilizat în operațiunile matematice este numerele întregi, sau numere simple, care pot varia între mii sau milioane, în funcție de numărul de biți din lățimea lor. De exemplu, un număr întreg pe 32 de biți poate varia de la zero la 4,294,967,295 sau de la -2,147,483,648 la 2,147,483,648. Un alt tip este numărul în virgulă mobilă, care este practic orice număr cu virgulă zecimală.
Caracterele unice, cum ar fi o literă a alfabetului sau un semn de punctuație, pot fi, de asemenea, folosite ca tip de date. Un tip de date șir este orice grup sau secvență de numere și/sau litere fără întrerupere; lungimile șirurilor sunt arbitrare, dar dimensiunea sau limita lor este de obicei definită în limbajul de programare. Cel mai vechi dintre tipuri de date este Booleanul, care este pur și simplu adevărat sau fals. Alte clase de tipuri includ algebrice, funcții, date de mașină și obiecte. De exemplu, în limbile orientate pe obiecte, strămoșul unui obiect poate folosi tipul unui obiect părinte, astfel încât interacțiunile lor între ele să meargă mai bine.
Specificul conversiei de tip într-adevăr nu intră în joc până când regulile unui anumit limbaj de programare nu sunt luate în considerare. Unele reguli ale limbajului dictează în continuare dacă o conversie de tip este implicită sau explicită. O conversie de tip implicit este cel mai frecvent numită coerciție și are loc de obicei în momentul în care un program este compilat din codul sursă într-un program executabil. Acest lucru se poate întâmpla, de exemplu, dacă într-o expresie sunt utilizate mai multe tipuri de date și apoi este executată o comparație. Conversia tipului este considerată implicită, iar compilatorul o gestionează automat; o conversie de tip explicită este definită în codul programului. Limbajul de programare C face o distincție între cele două, numind o conversie de tip implicită o constrângere, iar o conversie de tip explicită o distribuție.
Un exemplu simplu de conversie de tip comun ar fi operațiile matematice pe numere într-un program de calculator. Un program de calculator care primește un număr zecimal, un tip de date în virgulă mobilă, ca intrare, poate fi necesar să convertească numărul într-un tip de date întreg pentru a efectua operații matematice sau invers. Această conversie permite operațiunii să continue.