Conversion décompressés décimales Comp-3 données en double paniers

StackOverflow https://stackoverflow.com/questions/796818

  •  18-09-2019
  •  | 
  •  

Question

J'ai un fichier texte de largeur fixe, qui a été décompressé de Comp-3 données en chaînes de largeur fixe.

Je dois savoir comment interpréter les champs suivants:

FIELD-NAME-1 PIC S9(15)V9(3) COMP-3.
FIELD-NAME-2 PIC S9(3)V9(8) COMP-3.
FIELD-NAME-3 PIC S9(3)V9(6) COMP-3.

Ceux-ci apparaissent dans mon fichier plat:

FIELD-NAME-1 0123456789123456780
FIELD-NAME-2 01234567890
FIELD-NAME-3 012345670

Je dois savoir quels sont les numéros ci-dessus seraient les représenter.

Est-ce exact:

FIELD-NAME-1 123456789123456.780  --> The first 0 means +ve?
FIELD-NAME-2 012.34567890
FIELD-NAME-3 012.345670

Merci pour l'aide. Ham

Était-ce utile?

La solution

Le S9 (15) V9 (3) nécessite 19 quartets (20 en réalité, car il doit faire un nombre pair de quartets) pour stocker:

  • un pour le signe.
  • 15 pour le bit de nombre entier.
  • 3 pour le bit non entier (V est une décimale implicite, pas un vrai).

Le signe apparaît généralement à la fin comme C ou un nybble de D donc la réponse à cette question dépend entièrement de ce fait le déballer.

Votre premier exemple a fait le bon nombre de chiffres sans le signe donc je serais concerné par votre déclaration que l'un d'entre eux représentaient le signe. Soit ça, ou vous avez laissé au large de la « 9 ». Les deux autres exemples ont assez de chiffres pour le signe et une partie numérique.

Le meilleur pari, voir si vous pouvez obtenir un nombre négatif (et d'autres données de test comme 1) en là pour voir ce qu'il génère.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top