Was ist Typkonvertierung?
Die Typkonvertierung ist eine Form des Typpunings, eine Technik, die in der Informatik und in der Programmierung von Computersoftware verwendet wird und bei der der Datentyp einer bestimmten Entität in einen anderen Datentyp geändert wird. Das Konzept des Typ-Punnings wurde eingeführt, um das angegebene Typsystem einer Programmiersprache zu umgehen, sodass bestimmte Effekte erzielt werden können, die ansonsten im Rahmen der formalen Definition der Programmiersprache nur schwer möglich wären. Die Typenkonvertierung ist die häufigste Form der Typenkonvertierung und ist in nahezu allen Programmiersprachen möglich. Einige Sprachen bieten jedoch zusätzliche Methoden zur Typenkonvertierung an, z. B. Vereinigung oder Neuinterpretation. Einige Programmier-Styleguides raten vom Typ-Punning ab, obwohl die Typkonvertierung sowieso häufig verwendet wird.
Die Typkonvertierung wird manchmal auch als Typumwandlung oder Zwang bezeichnet, abhängig von der verwendeten Programmiersprache. Jede Programmiersprache hat Regeln, wie die Typkonvertierung erfolgreich eingesetzt werden kann. Im Allgemeinen können Konvertierungen entweder für grundlegende Typen oder für Objekte erfolgen.
Es gibt verschiedene grundlegende Datentypen oder Klassen von Datentypen. Ein gebräuchlicher Datentyp, der in mathematischen Operationen verwendet wird, sind Ganzzahlen oder einfache Zahlen, die je nach Anzahl der Bits in ihrer Breite im Bereich von Tausenden oder Millionen liegen können. Beispielsweise kann eine 32-Bit-Ganzzahl im Bereich von Null bis 4.294.967.295 oder von -2.147.483.648 bis 2.147.483.648 liegen. Ein anderer Typ ist die Gleitkommazahl, bei der es sich im Grunde um eine beliebige Zahl mit einem Dezimalpunkt handelt.
Einzelne Zeichen, z. B. ein Buchstabe des Alphabets oder ein Satzzeichen, können ebenfalls als Datentyp verwendet werden. Ein String-Datentyp ist eine beliebige Gruppe oder Folge von Zahlen und / oder Buchstaben ohne Unterbrechung. Stringlängen sind willkürlich, aber ihre Größe oder Begrenzung wird normalerweise in der Programmiersprache definiert. Der älteste Datentyp ist der Boolesche, der entweder wahr oder falsch ist. Andere Klassen von Typen umfassen Algebraisch, Funktionen, Maschinendaten und Objekte. In objektorientierten Sprachen kann der Vorfahr eines Objekts beispielsweise den Typ eines übergeordneten Objekts verwenden, damit die Interaktionen reibungsloser verlaufen.
Die Besonderheiten der Typkonvertierung kommen erst dann zum Tragen, wenn die Regeln einer bestimmten Programmiersprache berücksichtigt werden. Die Regeln einiger Sprachen bestimmen ferner, ob eine Typkonvertierung implizit oder explizit ist. Eine implizite Typkonvertierung wird am häufigsten als Zwang bezeichnet und findet normalerweise zu dem Zeitpunkt statt, zu dem ein Programm aus dem Quellcode in ein ausführbares Programm kompiliert wird. Dies kann beispielsweise passieren, wenn in einem Ausdruck mehrere Datentypen verwendet werden und dann ein Vergleich ausgeführt wird. Die Typkonvertierung wird als impliziert betrachtet und vom Compiler automatisch verarbeitet. Eine explizite Typkonvertierung ist im Code des Programms definiert. In der Programmiersprache C wird zwischen beiden unterschieden, indem eine implizite Typkonvertierung als Zwang und eine explizite Typkonvertierung als Umwandlung bezeichnet wird.
Ein einfaches Beispiel für eine übliche Typumwandlung wären mathematische Operationen mit Zahlen in einem Computerprogramm. Ein Computerprogramm, das eine Dezimalzahl, einen Gleitkommadatentyp, als Eingabe empfängt, muss möglicherweise die Zahl in einen Ganzzahldatentyp konvertieren, um mathematische Operationen auszuführen, oder umgekehrt. Durch diese Konvertierung kann der Vorgang fortgesetzt werden.