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.

Tabelle 53. Grenzwerte für Datentypen
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