Integerkonvertierung
Undefiniertes Ergebnis bei Überschreitung des Wertebereichs Wenn der Eingangswert eines Typkonvertierungsoperators außerhalb des Wertebereichs des Ausgangsdatentyps liegt, ist das Ergebnis der Operation nicht definiert und abhängig von der Plattform. Dies ist beispielsweise der Fall, wenn ein negativer Operandenwert von LREAL in den Zieldatentyp UINT konvertiert wird. Auch ein Ausnahmefehler ist dann möglich! |
Informationsverlust möglich Wenn ein größerer Datentyp in einen kleineren Datentyp konvertiert wird, können Informationen verloren gehen. |
Stringmanipulation bei Konvertierung nach STRING oder WSTRING Bei einer Typkonvertierung nach STRING oder WSTRING wird der getypte Wert als Zeichenfolge linksbündig abgelegt und bei Überlänge abgeschnitten. Deklarieren Sie deshalb die Rückgabevariablen für die Typkonvertierungsoperatoren <type>_TO_STRING und <type>_TO_WSTRING ausreichend lang, sodass die Zeichenfolge ohne Manipulation Platz findet. |
Die Operatoren konvertieren:
- einen ganzzahligen Datentyp in den angegebenen Datentyp,
- einen anderen Datentyp in einen ganzzahligen Datentyp,
- oder einen ganzzahligen Datentyp in einen anderen ganzzahligen Datentyp.
Als Operand können Sie eine Variable oder ein Literal angeben.
Wenn ein größerer in einen kleineren Datentyp konvertiert wird, werden die höherwertigen (vorderen) Bytes abgeschnitten. Wenn ein kleinerer in einen größeren Datentyp konvertiert wird, werden die höherwertigen Bytes mit Nullen aufgefüllt.
Syntax:
<INT-Datentyp>_TO_<Datentyp> (<Variablenname> | <Literal>)
<Datentyp>_TO_<INT-Datentyp> (<Variablenname> | <Literal>)
<INT-Datentyp>_TO_<INT-Datentyp> (<Variablenname> | <Literal>)
Ganzzahlige Datentypen:
- BYTE
- WORD, DWORD, LWORD
- SINT, INT, DINT, LINT
- USINT, UINT, UDINT, ULINT
Beispiele:
Ergebnis: nVar ist 127.
ST:
nVar := INT_TO_SINT(4223);
Wenn Sie die Integer-Zahl 4223 (16#107f in Hexadezimaldarstellung) in eine SINT-Variable speichern, dann enthält diese Variable die Zahl 127 (16#7f in Hexadezimaldarstellung).
FUP:
Siehe auch:
- Datentypen > Ganzzahlige Datentypen