1.9.5.4 numerische Felder - COMPUTATIONAL-3 PACKED
Bei COMPUTATIONAL-3 Feldern handelt es sich um eine gepackte Darstellung. Für jedes Ziffer werden 4-Bit (Nibble oder Halfbyte) zur Abspeicherung verwendet.
Da im Speicher die kleinste Adressierungeinheit 1 Byte ist, muß das eventuell ungenutzte Nibble mit einem Leerzeichen versehen werden.
Das Vorzeichen wird in einem seperaten Nibble abgespeichert.
Mit einem Nibble können die Zahlen von 0 - 15 (Hex 0 - 0x0f) dargestellt werden, für das 10-er System werden aber nur die Ziffern von 0-9 benötigt.
Das Vorzeichen wird immer rechtsbündig in der höchsten Nibbeladresse abgelegt und kann folgende Werte beinhalten:
|
PICTURE | positiver Wert | negativer Wert | ohne S (unsigned) | 0x0F | 0x0F | mit S (signed) | 0x0C | 0x0D |
|
Die Darstellung der Zahl 1234 wäre dann:
|
Nibbleaddresse | 0 | 1 | 2 | 3 | 4(Vorzeichen) | Inhalt(unsigned) | 0x01 | 0x02 | 0x03 | 0x04 | 0x0f | Inhalt(signed) | 0x01 | 0x02 | 0x03 | 0x04 | 0x0c |
|
Bei der Abspeicherung werden je 2 Nibble von rechts nach links zu je einem Byte zusammengefasst.
|
Speichereaddresse | 0 | 1 | 2 | Inhalt(unsigned) | 0x01 | 0x23 | 0x4f | Inhalt(signed) | 0x01 | 0x23 | 0x4c |
|
Der Speicherbedarf von COMPUTATIONAL-3 ist also der Integerwert von:
(Anzahl der Ziffern + 2) / 2
Zurück zu Darstellung der Daten: Fließkommazahlen in Cobol
Hoch zu Darstellung der Daten in Cobol
Weiter zu numerische Felder - COMPUTATIONAL-5
|