Typumwandlung - Funktion
- Aktualisiert2025-07-30
- 4 Minute(n) Lesezeit
Wandelt x in den in Typ angegebenen Datentyp um, indem es mithilfe des neuen Datentyps serialisiert und deserialisiert wird. Wenn die Daten vor der Umwandlung neu interpretiert werden müssen, wird dazu ein temporärer Puffer bereitgestellt. Bei dieser Funktion besteht das Risiko einer Neuinterpretation der Daten. Damit der Datenwert während der Umwandlung der Daten beibehalten wird, verwenden Sie stattdessen die Funktion "Typ erzwingen".

Ein-/Ausgänge
Typ
—
Typ ist der Datentyp, in den die Daten umgewandelt werden sollen. Der Datentyp wird durch Verbinden einer Konstante oder eines Bedienelements mit dem Eingang Typ festgelegt. Alle Daten in der Konstante oder dem Bedienelement werden ignoriert.
x
—
x gibt die zu konvertierenden Werte an. Dieser Eingang nimmt alle Datentypen an.
*(Typ *) &x
—
*(Typ *) &x ist der gleiche Wert wie x und wurde in den gleichen Datentyp wie Typ umgewandelt. |
Unterschied zwischen den Funktionen "Typumwandlung" und "Typ erzwingen"
Die Funktion Typ erzwingen wandelt die Daten in den gewünschten Datentyp um. Im Gegensatz zur Funktion "Typ erzwingen" lässt die Funktion "Typumwandlung" auch die Umwandlung zwischen inkompatiblen Datentypen zu. In diesem Fall werden die Eingangsdaten lediglich serialisiert und deserialisiert, wodurch die Daten vollkommen anders interpretiert werden können. Wenn der gewünschte Datentyp mehr Speicherplatz als die Eingangsdaten beansprucht, kann die Funktion die Daten uminterpretieren. Die Funktion "Typ erzwingen" lässt nur eine Umwandlung zwischen kompatiblen Datentypen zu. Auf diese Weise wird, ähnlich wie bei Typumwandlungspunkten, der Eingangswert beibehalten. Mit der Funktion "Typ erzwingen" können auch Typdefinitionen umgewandelt sowie Daten an der Verbindung (z. B. Benutzerereignisreferenzen) umbenannt werden. NI empfiehlt, dass Sie die Funktion "Typ erzwingen" anstelle der Funktion "Typumwandlung" verwenden, um ein erneutes Interpretieren der Daten zu vermeiden.
Probleme bei Größenunterschieden zwischen "X" und "Typ"
Wenn x und Typ nicht gleich groß sind, kann es zu unerwarteten Werten kommen. Wenn zum Speichern von x mehr Bits erforderlich sind, als der Typ zulässt, werden die höherwertigen Bytes von x verwendet und die niederwertigen ignoriert. Ist der Datentyp von x kleiner als Typ, werden die Daten in x an die Stelle der höherwertigen Bytes von Typ verschoben und die übrigen Bytes mit Nullen aufgefüllt. Ein vorzeichenloser 8-Bit-Integer mit dem Wert 1 wird beispielsweise bei der Typumwandlung in einen vorzeichenlosen 16-Bit-Integer zu 256.
Typumwandlung von Arrays
Diese Funktion kann mit einem Array aus Skalaren oder einem Array aus Skalar-Clustern verwendet werden. Wenn Sie beispielsweise ein Array aus vier 16-Bit-Integern in ein Array aus 32-Bit-Integern umwandeln, enthält das Ausgangs-Array zwei Elemente. Jedes davon besteht aus den Bits der Elementepaare im Eingangs-Array. Wenn das Eingangs-Array nicht genügend Bytes enthält, um eine ganze Zahl von Ausgangselementen zu erzeugen, lässt LabVIEW die letzten Elemente des Eingangs-Arrays weg.
Typumwandlung von Referenzen
Verwenden Sie zur Umwandlung von Referenzen in eine höhere oder niedrigere Klasse statt der Funktion "Typumwandlung" die Funktionen Nach allgemeinerer Klasse und Nach spezifischerer Klasse. Diese Funktionen bieten im Gegensatz zur Funktion "Typumwandlung" auch eine Fehlerüberprüfung. So hat die Funktion "Nach spezifischerer Klasse" einen Fehler (Eingang) und einen Fehler (Ausgang). Bei der Funktion "Nach allgemeinerer Klasse" wird die Verbindung ungültig, wenn Sie eine Referenz mit einer Klasse verbinden möchten, mit der die Referenz nicht kompatibel ist.
Typumwandlung boolescher Daten aus älteren LabVIEW-Versionen
Wenn x möglicherweise boolesche Werte enthält, die in LabVIEW-Versionen bis einschließlich 4.x erzeugt worden sind, klicken Sie mit der rechten Maustaste auf diese Funktion und wählen Sie aus dem Kontextmenü die Option 4.x-Daten konvertieren aus. Im Modus 4.x-Daten konvertieren interpretiert die Funktion die Daten von x so, als wären sie unter LabVIEW 4.x gespeichert worden, und das Symbol der Funktion wird mit einem roten 4.x markiert. Bei LabVIEW-Versionen bis einschließlich 4.x werden boolesche Daten in zwei Bytes gespeichert, sofern die Daten nicht zu einem Array gehören. In diesem Fall speichert LabVIEW 4.x jedes boolesche Element in einem einzelnen Bit. Bei den LabVIEW-Versionen ab 5.0 wird ein boolescher Wert in einem einzigen Byte gespeichert, und zwar unabhängig davon, ob dieser Wert Teil eines Arrays ist oder nicht. Langfristig wird empfohlen, alle Anwendungen, die den Modus 4.x-Daten konvertieren verwenden, zu überarbeiten.
Typ
—
x
—
*(Typ *) &x
—