Binär-und Hexadezimalformate
Daten können in Formaten gelesen und geschrieben werden, die von einer Reihe von Programmiersprachen verwendet werden, darunter PL/I, COBOL, FORTRAN und Assembler. Die Daten können binär, hexadezimal oder gezont dezimal sein. Die in diesem Abschnitt beschriebenen Formate können sowohl als Eingabe-als auch als Ausgabeformate verwendet werden, jedoch nur mit festen Daten.
Das Standardausgabeformat für alle in diesem Abschnitt beschriebenen Formate ist ein funktional entsprechendes F -Format, das die maximale Anzahl Spalten für Werte mit Symbolen und Interpunktion ermöglicht. Verwenden Sie FORMATS oder WRITE FORMATS, um den Standardwert zu ändern.
IBw.d (ganzzahlige Binärzahl):
Das Format IB liest Felder, die binäre Festpunktdaten (ganzzahlige Daten) enthalten. Die Daten können von „ COBOL “ unter Verwendung von COMPUTATIONAL-Datenelementen, von FORTRAN unter Verwendung von „ INTEGER*2 “ oder „ INTEGER*4 “ oder von Assembler unter Verwendung von Fullword- und Halfword-Elementen generiert werden. Das allgemeine Format ist eine Binärzahl mit Vorzeichen, die 16 oder 32 Bit lang ist.
Die allgemeine Syntax für das Format IB ist IBw.d, wobei w die Feldbreite in Byte (bei Spezifikationen im Spaltenstil weggelassen) und d die Anzahl der Ziffern rechts vom Dezimalzeichen ist. Da die Breite in Byte und die Anzahl der Dezimalstellen in Ziffern angegeben werden, kann d größer als wsein. Die beiden folgenden Befehle sind beispielsweise gültig:
DATA LIST FIXED /VAR1 (IB4.8).
DATA LIST FIXED /VAR1 1-4 (IB,8).
Breiten von 2 und 4 stellen 16-Bit-Standardganzzahlen bzw. 32-Bit-Ganzzahlen dar. Felder, die mit dem Format IB gelesen werden, werden als signiert behandelt. Der 1-Byte-Binärwert 11111111 wird beispielsweise als -1 gelesen.
PIBw.d (positive Ganzzahl binär) :
Das Format PIB ist im Wesentlichen dasselbe wie IB , außer dass negative Zahlen nicht zulässig sind. Diese Einschränkung ermöglicht ein zusätzliches Bit der Größe. Derselbe 1-Byte-Wert 11111111 wird als 255 gelesen.
PIBHEXw (hexadezimal von PIB):
Das Format PIBHEX liest Hexadezimalzahlen als ganze Zahlen ohne Vorzeichen und schreibt positive ganze Zahlen als Hexadezimalzahlen. Die allgemeine Syntax für das Format PIBHEX ist PIBHEXw, wobei w die Gesamtzahl der Hexadezimalzeichen angibt. Die Spezifikation w muss eine gerade Zahl mit maximal 16 sein.
Bei Eingabedaten muss jede Hexadezimalzahl aus der exakten Anzahl Zeichen bestehen. Zeichen, Dezimalzeichen oder führende und abschließende Leerzeichen sind nicht zulässig. Bei einigen Betriebssystemen (z. B. IBM CMS) müssen Hexadezimalzeichen in Großbuchstaben angegeben werden. Das folgende Beispiel veranschaulicht die Art von Daten, die das Format PIBHEX lesen kann:
DATA LIST FIXED
/VAR1 1-4 (PIBHEX) VAR2 6-9 (PIBHEX) VAR3 11-14 (PIBHEX).
BEGIN DATA
0001 0002 0003
0004 0005 0006
0007 0008 0009
000A 000B 000C
000D 000E 000F
00F0 0B2C FFFF
END DATA.
LIST.
Die Werte für VAR1, VAR2und VAR3 sind in der folgenden Abbildung aufgelistet. Das Format PIBHEX kann auch zum Schreiben von Dezimalwerten als Hexadezimalzahlen verwendet werden, was für Programmierer nützlich sein kann.
VAR1 VAR2 VAR3
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
240 2860 65535
Zw.d (gezont dezimal):
Das Format Z liest Datenwerte, die gezonte Dezimaldaten enthalten. Solche Zahlen können von Systemen mit der Befehlsfolge „ COBOL “ unter Verwendung von DISPLAY-Datenelementen, von Systemen mit der Befehlsfolge „ PL/I “ unter Verwendung von PICTURE-Datenelementen oder von Assembler unter Verwendung von zonierten Dezimal-Datenelementen erzeugt werden.
Im gezonten Dezimalformat wird eine Ziffer durch ein Byte dargestellt, im Allgemeinen hexadezimal F1 für 1, F2 für 2 usw. Das letzte Byte kombiniert jedoch das Vorzeichen für die Zahl mit der letzten Ziffer. Im letzten Byte ordnet das hexadezimale Zeichen A, F oder C das Zeichen + und B, D oder E das Zeichen-zu. Das hexadezimale Zeichen D1 steht beispielsweise für 1 für die letzte Ziffer und weist der Zahl das Minuszeichen (-) zu.
Die allgemeine Syntax des Z -Formats lautet Zw.d, wobei w die Gesamtzahl der Byte (entspricht den Spalten) und d die Anzahl der Dezimalstellen ist. Bei Eingabedaten können Werte an einer beliebigen Stelle in den Spaltenspezifikationen auftreten. Führende und abschließende Leerzeichen sind zulässig. Dezimalstellen können durch die Eingabeformatspezifikation impliziert oder explizit in den Daten codiert werden. Explizit codierte Dezimalzahlen überschreiben die Eingabeformatspezifikationen.
Das folgende Beispiel veranschaulicht, wie das Z -Format gezonte Dezimalzahlen auf IBM Mainframe-und PC-Systemen in gedruckter Form liest. Das gedruckte Formular für die Zeichenzone (A bis I für + 1 bis +9 usw.) kann von System zu System variieren.
DATA LIST FIXED /VAR1 1-5 (Z) VAR2 7-11 (Z,2) VAR3 13-17 (Z)
VAR4 19-23 (Z,2) VAR5 25-29 (Z) VAR6 31-35 (Z,2).
BEGIN DATA
1234A 1234A 1234B 1234B 1234C 1234C
1234D 1234D 1234E 1234E 1234F 1234F
1234G 1234G 1234H 1234H 1234I 1234I
1234J 1234J 1234K 1234K 1234L 1234L
1234M 1234M 1234N 1234N 1234O 1234O
1234P 1234P 1234Q 1234Q 1234R 1234R
1234{ 1234{ 1234} 1234} 1.23M 1.23M
END DATA.
LIST.
Die Werte für VAR1 bis VAR6 sind in der folgenden Abbildung aufgelistet.
VAR1 VAR2 VAR3 VAR4 VAR5 VAR6
12341 123.41 12342 123.42 12343 123.43
12344 123.44 12345 123.45 12346 123.46
12347 123.47 12348 123.48 12349 123.49
-12341 -123.41 -12342 -123.42 -12343 -123.43
-12344 -123.44 -12345 -123.45 -12346 -123.46
-12347 -123.47 -12348 -123.48 -12349 -123.49
12340 123.40 -12340 -123.40 -1 -1.23
Das Standardausgabeformat für das Format Z ist das entsprechende F -Format, wie in der Abbildung dargestellt. Die Standardausgabebreite basiert auf der Eingabebreitenspezifikation plus einer Spalte für das Vorzeichen und einer Spalte für das implizierte Dezimalzeichen (falls angegeben). Beispiel: Das Eingabeformat Z4.0 generiert das Ausgabeformat F5.0und das Eingabeformat Z4.2 das Ausgabeformat F6.2.
Pw.d (gepackt dezimal):
Das Format P wird zum Lesen von Feldern mit gepackten Dezimalzahlen verwendet. Solche Zahlen werden von „ COBOL “ unter Verwendung von „ COMPUTATIONAL–3 “-Datenelementen und von „Assembler“ unter Verwendung von gepackten Dezimaldatenelementen generiert. Das allgemeine Format eines gepackten Dezimalfelds besteht aus zwei 4-Bit-Ziffern in jedem Byte des Felds mit Ausnahme des letzten. Das letzte Byte enthält eine einzelne Ziffer in den vier Bits ganz links und ein 4-Bit-Zeichen in den Bits ganz rechts. Sind die letzten vier Bits 1111 (hexadezimal F), ist der Wert positiv; sind sie 1101 (hexadezimal D), ist der Wert negativ. Ein Byte im Format P kann Zahlen von -9 bis 9 darstellen.
Die allgemeine Syntax des Formats P lautet Pw.d, wobei w die Anzahl Byte (nicht Ziffern) und d die Anzahl Ziffern rechts vom implizierten Dezimalzeichen ist. Die Anzahl der Ziffern in einem Feld ist (2 *w-1).
PKw.d (gepackte Dezimalzahl ohne Vorzeichen):
Das Format PK ist im Wesentlichen dasselbe wie P , außer dass es kein Vorzeichen gibt. Das heißt, auch das rechte Byte enthält zwei Stellen und negative Daten können nicht dargestellt werden. Ein Byte im Format PK kann Zahlen von 0 bis 99 darstellen. Die Anzahl der Ziffern in einem Feld ist 2 *w.
RBw (reelle Binärzahl):
Das Format RB wird zum Lesen von Datenwerten verwendet, die Gleitkommazahlen im internen Format enthalten. Solche Zahlen werden von „ COBOL “ unter Verwendung von „ COMPUTATIONAL–1 “- oder „ COMPUTATIONAL–2 “-Datenelementen, von „ PL/I “ unter Verwendung von „FLOATING DECIMAL“-Datenelementen, von „FORTRAN“ unter Verwendung von „REAL“- oder „ REAL*8 “-Datenelementen oder von „Assembler“ unter Verwendung von Gleitkomma-Datenelementen generiert.
RB ist RBw, wobei w die Gesamtzahl der Byte ist. Die Breitenangabe muss eine gerade Zahl zwischen 2 und 8 sein. Normalerweise wird eine Breitenangabe von 8 zum Lesen von Werten mit doppelter Genauigkeit und eine Breite von 4 zum Lesen von Werten mit einfacher Genauigkeit verwendet.RBHEXw (hexadezimal von RB):
Das Format RBHEX interpretiert eine Reihe von Hexadezimalzeichen als Zahl, die eine Gleitkommazahl darstellt. Diese Darstellung ist systemspezifisch. Wenn die Feldbreite kleiner als die doppelte Breite einer Gleitkommazahl ist, wird der Wert rechts mit binären Nullen aufgefüllt. Bei einigen Betriebssystemen (z. B. IBM CMS) müssen Buchstaben in Hexadezimalwerten in Großbuchstaben angegeben werden.
Die allgemeine Syntax des Formats RBHEX ist RBHEXw, wobei w die Gesamtzahl der Spalten angibt. Die Breite muss eine gerade Zahl sein. Die Werte sind reelle Zahlen (Gleitkommazahlen). Führende und abschließende Leerzeichen sind unzulässig. Alle Datenwerte, die kürzer als die angegebene Eingabebreite sind, müssen mit führenden Nullen aufgefüllt werden.