> Tech > Champs de type entier et virgule flottante à  l’exécution

Champs de type entier et virgule flottante à  l’exécution

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

  On peut en principe effectuer plus facilement des calculs arithmétiques avec des champs entiers et en virgule flottante à  l'exécution, en utilisant des structures de données et des overlays. Pour l'overlay, il faut d'abord savoir combien d'octets utilisent la valeur à  l'exécution (runtime value). La figure 4 donne cette information.

Champs de type entier et virgule flottante à  l’exécution

Ainsi, si l’on définit un champ numérique avec type I ou U et une longueur de cinq, ce champ aura deux octets. Le programme DMAPDEMO3 (figure 5) montre la technique pour traiter des champs entiers et à  virgule flottante, ce qui implique l’utilisation des overlays de structure de données. Ce programme accepte des paramètres de deux caractères qui contiennent des valeurs entières et effectuent l’opération indiquée paramétriquement. La structure de données Int1Ds comprend deux sous-champs : Int1 et Int1Chr. Notons que j’ai défini Int1CHr pour recouvrir (overlay) Int1. Comme l’indique la figure 5, j’ai défini Int1Chr avec quatre octets parce que Int1 est un champ de quatre octets. Ainsi, Int1Chr recouvre Int1 et est exactement de la même taille que Int1. J’ai également défini les structures de données Int2Ds et ResultDs de la même manière que les structures de données Int1Ds. Après ces trois structures de données, on trouve les définitions pour les paramètres transmis à  ce programme. PrmInt1 et PrmInt2 sont des champs caractères de quatre octets contenant des données de type entier. Comme dans le programme DMAP-DEMO2 (figure 2), PrmOp est un champ caractère d’un octet qui indique les opérations addition, sous-traction, multiplication et division et inclut les constantes nommées pour ces quatre opérations. Après la liste des paramètres entrés se trouvent deux instructions Eval qui déplacent les deux paramètres d’entrée vers Int1Chr et Int2Chr, respectivement. En ce qui concerne le RPG, les deux instructions Eval déplacent simplement un champ caractère de quatre octets dans un autre champ caractère de quatre octets. Mais, comme Int1Chr et Int2Chr sont en réalité des overlays par dessus Int1 et Int2, j’ai pu placer la donnée entière contenue dans les champs caractères PrmInt1 et PrmInt2 dans les champs entiers Int1 et Int2. Je peux à  présent effectuer n’importe quel calcul arithmétique sur ces deux valeurs. Le bloc Select/EndSl effectue les calculs arithmétiques en se fondant sur la valeur du paramètre PrmOp transmis au programme. Dans les quatre cas, le résultat est placé dans ResultInt, qui est aussi recouvert par ResultIntChr. Donc, si j’ai besoin de stocker le résultat dans un champ caractère, je viens juste de le faire.

  Dans le cas de ce petit programme, j’affiche simplement le résultat. Bien que le programme DMAPDEMO3 illustre l’arithmétique avec uniquement un entier signé d’un mot complet, la technique est la même pour tout type de donnée, qu’il soit entier ou à  virgule flottante. Il faut juste penser à  consulter la figure 4 pour obtenir la taille des données en octets et utiliser cette longueur lors du recouvrement, comme le montre le programme DMAPDEMO3.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010