Numerische Datentypen
- Aktualisiert2026-07-22
- 2 Minute(n) Lesezeit
Verwenden Sie lokale und globale Integer-Datentypen und Fließkommazahlen in PAscript.
Definitionsoptionen für Integer- und Fließkomma-Datentypen
Die folgenden Definitionsoptionen stehen für Integer- und Fließkomma-Datentypen zur Verfügung.
| Datentyp | Global | Lokal |
|---|---|---|
| int8 | — | ✔ |
| int16 | — | ✔ |
| int32 | ✔ | ✔ |
| uint8 | — | ✔ |
| uint16 | — | ✔ |
| uint32 | — | ✔ |
| real32 | — | ✔ |
| real64 | ✔ | ✔ |
Grenzwerte für Datentypen
Numerische Datentypen haben basierend auf ihrer Byte-Größe Minimum- und Maximumwerte.
| Datentyp | Minimum | Maximum |
|---|---|---|
| int8 | -128 | 127 |
| int16 | -32.768 | 32.767 |
| int32 | -2.147.483.648 | 2.147.483.647 |
| uint8 | 0 | 255 |
| uint16 | 0 | 65.536 |
| uint32 | 0 | 4.294.967.295 |
| real32 | -3,402823466385e+38 | 3,402823466385e+38 |
| real64 | -1,797693134862e+308 | 1,797693134862e+308 |
Fragen Sie die Minimum- und Maximumgrenzwerte eines Datentyps mit Hilfe von :min oder :max ab. Der Datentyp der Zielvariablen muss innerhalb der Grenzwerte des angeforderten Datentyps liegen.
- Die folgenden Aufrufe sind gültig, da die Ausgabewerte oder Berechnungen des Attributs innerhalb der Grenzwerte der entsprechenden Variablen-Datentypen liegen.
- int8 maxInt8 = int8:max
- int8 minInt8 = int8:min
- uint32 maxUInt32 = uint16:max
- int8 var1 = int32:max + int32:min
- int8 var2 = int8:min + 5
- Die folgenden Aufrufe sind ungültig, da die Ausgabewerte oder Berechnungen des Attributs außerhalb der Grenzwerte der entsprechenden Variablen-Datentypen liegen.
- uint16 minInt32 = int32:min
- int8 maxUInt16 = uint16:max
- int8 var1 = int16:min / 2
- int8 var2 = int8:min - 255
Die Regeln gelten analog für die Attribute von Fließkommazahlen.
Beispiel: Abfragen des Minimum- und Maximumwerts eines Datentyps
program section initialization sys:logInfo(sys:ui, "int8:min=%d, int8:max=%d", int8:min, int8:max) sys:logInfo(sys:ui, "int16:min=%d, int16:max=%d", int16:min, int16:max) sys:logInfo(sys:ui, "int32:min=%d, int32.max=%d", int32:min, int32:max) sys:logInfo(sys:ui, "uint8:min=%d, uint8:max=%d", uint8:min, uint8:max) sys:logInfo(sys:ui, "uint16:min=%u, uint16:max=%u", uint16:min, uint16:max) sys:logInfo(sys:ui, "uint32:min=%u, uint32:max=%u", uint32:min, uint32:max) sys:logInfo(sys:ui, "real32:min=%.12e, real32:max=%.12e", real32:min, real32:max) sys:logInfo(sys:ui, "real64:min=%.12e, real64:max=%.12e", real64:min, real64:max) endsection endprogram