Qui è un piccolo tentativo diverso a rispondere alle vostre domande.
PIC S9 (15) V9 (3) COMP-3 è simile al seguente nel file:
00 00 00 00 00 00 00 00 00 0F
Se il valore fosse -4.568.248.323, sarebbe:
00 00 00 00 04 56 82 48 32 3D
Questo non aiuta, ma può aiutare gli altri. disfatto il valore precedente sarà simile:
F0 F0 F0 F0 F0 F0 F0 F0 F0 F4 F5 F6 F8 F2 F4 F8 F3 F2 D3 (or F3 as the last byte, therefore losing the sign)
Questo campo ha 15 (in realtà 16) cifre prima del punto decimale e 3 dopo.
Anche se richiede solo 18 cifre (15 + 3), ottiene 19 per renderlo un campo di lunghezza pari con il segno (una cifra aggiunta in primo piano per renderlo lungo 10 byte sul file). La migliore pratica è di rendere sempre i campi imballati una lunghezza strana per evitare questa confusione.
** L'ultima lettera indica il segno, C & F sono positivi, D è negativo. Per il tuo programma, controlla il negativo (D) e, in caso contrario, considera positivo.
** La "V" è un punto decimale implicito. non esiste sul file, ma COBOL sa che è lì per arrotondare e così via. È necessario per controllarlo a livello di programmazione. Non c'è nulla nel file che ti aiuti a identificare dove si trova o se esiste.
Gli altri due campi sono già lunghe dispari, quindi quando sono imballati, con il segno, possono essere memorizzati in una quantità di spazio pari.
Qualsiasi altra domanda, modifica la tua domanda o chiedi nei commenti e qualcuno cercherà di risponderti per te.