3.1 Standard-Datentypen

In den nachfolgenden Übersichtstabellen gilt für den /370-Assembler der angegebene Datentyp immer nur für den Anfangswert im DC-Befehl bzw. für Literale, da für eine Variable kein Datentyp definiert werden kann!

3.1.1 Das gezonte Format (für alphanumerische Daten, Zeichenketten)

Pro Byte wird ein Zeichen gespeichert.

Jedem Zeichen entspricht eine ganz bestimmte Bitkonfiguration. Es gibt mehrere Verschlüsselungstabellen, von denen sich die folgenden zwei durchgesetzt haben:

Variableninhalt C/C++ COBOL PL/I /370-ASSEMBLER
n beliebige Zeichen char
(Achtung: nur 1 Zeichen)
PICTURE X(n) DISPLAY CHARACTER (n) CLn
nur Ziffern PICTURE 9(n) DISPLAY PICTURE '(n)9' ZLn

Man beachte, dass es in C/C++ keine alphanumerischen Datenfelder gibt. Die Realisierung von Zeichenketten erfolgt mit Hilfe von Tabellen, deren Elemente char-Zeichen sind und deren letztes Element eine binäre Null ist.

Mit Zahlen im gezonten Format kann man jedoch nicht rechnen. Es gibt daher noch 3 weitere Datenformate, die das Rechnen mit Zahlen im Computer ermöglichen:

3.1.2 Das gepackte Format (für Rechenfelder, Zahlen)

Pro Halbbyte wird eine Ziffer gespeichert. Das letzte Halbbyte ganz rechts enthält das Vorzeichen.

Ein positives Vorzeichen wird durch die Hexadezimalziffern C, F, A oder E dargestellt, ein negatives durch D oder B, alle anderen Ziffern sind als Vorzeichen nicht erlaubt (in einigen EDV-Anlagen sind auch A, B und E ungültige Vorzeichen!).

Da in einem Computer immer nur ganze Bytes reserviert werden können, hat eine gepackte Zahl immer eine ungerade Anzahl von Ziffern!

Variableninhalt C/C++ COBOL PL/I /370-ASSEMBLER
n Ziffern, davon
   k Nachkommastellen und
   g Vorkommastellen
PICTURE 9(g)V9(k) COMP-3 DECIMAL FIXED (n,k) PLb
(Achtung: b = n/2 Bytes)

3.1.3 Das duale Format (für ganzzahlige Rechenfelder)

Zur Speicherung einer Zahl wird im Allg. ein Halbwort oder ein Wort verwendet.

Nichtnegative Zahlen werden einfach als Dualzahl (mit führenden binären Nullen) dargestellt. Negative Zahlen werden durch das Zweierkomplement ihres Absolutbetrages dargestellt (mit führenden binären Einsern). Das erste (am weitesten links liegende) Bit wird als Vorzeichenbit interpretiert, dabei steht 1 für minus, 0 für plus.

Hat eine im dualen Format dargestellte Zahl ein negatives Vorzeichen, so ist - um ihren Wert zu erhalten - das Zweierkomplement zu bilden.

Variableninhalt C/C++ COBOL PL/I /370-ASSEMBLER
Halbwort short int PICTURE 9(4) COMP-4 BINARY FIXED (15) H
Wort long int PICTURE 9(9) COMP-4 BINARY FIXED (31) F
Doppelwort D

In C/C++ gibt es noch den Datentyp   int , der je nach Betriebssystem   short int   oder   long int   entspricht.

3.1.4 Das Gleitkommaformat (für nichtganzzahlige Rechenfelder)

Eine Zahl wird bezüglich einer fix vereinbarten Basis (meist 16) durch ihre Mantisse (Ziffernstellen bzw. Genauigkeit) und ihren Exponenten (Größenordnung) dargestellt (eindeutig durch Normalisierung). Diese beiden Zahlenteile werden im Allg. in einem Wort oder Doppelwort gespeichert. Abhängig von der EDV-Anlage unterscheiden sich Gleitkommaformate durch die gewählte Basis, durch die Darstellung der Mantisse, durch die Darstellung des Exponenten und durch die Anordnung von Mantisse und Exponent.

Variableninhalt C/C++ COBOL PL/I /370-ASSEMBLER
Wort float COMP-1 DECIMAL FLOAT (6)
BINARY FLOAT (21)
E
Doppelwort double float COMP-2 DECIMAL FLOAT (16)
BINARY FLOAT (53)
L

In C/C++ gibt es eine noch höhere Genauigkeit ( long double float , das sind im Allg. 10 Byte).


Weiter
zum nächsten Kapitel
Zurück
zum vorherigen Kapitel
zum Anfang dieses Kapitels
zum Inhaltsverzeichnis