/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I M P R E S S I O N   H E X A - D E C I M A L E   D ' U N E   V A L E U R   F L O T T A N T E  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xcg/FloatHexa$vv$K' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20040323093921).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_MINI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   LE_NOMBRE_FLOTTANT_EST_EN_Float                                                                                               \
                    VRAI                                                                                                                \
                                        /* Le nombre flottant est-il en double ('VRAI') ou en simple ('FAUX') precision ?            */

#define   ENTRER_UN_NOMBRE_FLOTTANT                                                                                                     \
                    VRAI                                                                                                                \
                                        /* Faut-il entrer un nombre flottant ('VRAI') ou deux nombes hexa-decimaux ('FAUX') ?        */

#define   NOMBRE_FLOTTANT                                                                                                               \
                    FZERO                                                                                                               \
                                        /* Nombre a convertir.                                                                       */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I M P R E S S I O N   H E X A - D E C I M A L E   D ' U N E   V A L E U R   F L O T T A N T E  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Logical,INIT(le_nombre_flottant_est_en_Float,LE_NOMBRE_FLOTTANT_EST_EN_Float));
                                        /* Le nombre flottant est-il en double ('VRAI') ou en simple ('FAUX') precision ?            */
     DEFV(Logical,INIT(entrer_un_nombre_flottant,ENTRER_UN_NOMBRE_FLOTTANT));
                                        /* Entrer un nombre flottant ('VRAI') ou deux nombes hexa-decimaux ('FAUX') ?                */
     DEFV(FloatInt,nombre_flottant_en_Float);
     DEFV(flint,nombre_flottant_en_vrai_Float_de_base);
                                        /* Nombre a convertir en 'Float' et en 'vrai_Float_de_base'...                               */
     /*..............................................................................................................................*/
     EGAL(FloatInt_Float(nombre_flottant_en_Float),NOMBRE_FLOTTANT);
     EGAL(flint_FloaT(nombre_flottant_en_vrai_Float_de_base),NOMBRE_FLOTTANT);

#if       (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                            \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                              \
           )
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("double=""Float=",le_nombre_flottant_est_en_Float);
                         GET_ARGUMENT_N("simple=",le_nombre_flottant_est_en_Float);
                         GET_ARGUMENT_L("flottant=""float=",entrer_un_nombre_flottant);
                         GET_ARGUMENT_N("int=""hexa=""entier=",entrer_un_nombre_flottant);
                         GET_ARGUMENT_F("xd=""x=",FloatInt_Float(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i1=",FloatInt_Int_2(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i2=",FloatInt_Int_1(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i=",flint_InT(nombre_flottant_en_vrai_Float_de_base));
                                        /* ATTENTION : a la permutation {1,2} :                                                      */
                                        /*                                                                                           */
                                        /*                  "i1="   -->         FloatInt_Int_2(...)                                  */
                                        /*                    .                              .                                       */
                                        /*                   /|\                            /|\                                      */
                                        /*                    |                              |                                       */
                                        /*                     ------------------------------                                        */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*                  "i2="   -->         FloatInt_Int_1(...)                                  */
                                        /*                    .                              .                                       */
                                        /*                   /|\                            /|\                                      */
                                        /*                    |                              |                                       */
                                        /*                     ------------------------------                                        */
                                        /*                                                                                           */
                                        /* due a la structure des informations sur les MACHINEs de type 'APC'...                     */
                         )
                    );

     Test(EST_VRAI(le_nombre_flottant_est_en_Float))
          Bblock
          Test(IL_FAUT(entrer_un_nombre_flottant))
               Bblock
               CAL2(Prin2("0x%08x 0x%08x",FloatInt_Int_2(nombre_flottant_en_Float),FloatInt_Int_1(nombre_flottant_en_Float)));
                                        /* ATTENTION : a l'ordre inverse de 'FloatInt_Int_2(...)' qui precede 'FloatInt_Int_1(...)', */
                                        /* ce qui est a la structure des informations sur les MACHINEs de type 'APC'...              */
               Eblock
          ATes
               Bblock
               CAL2(Prin1("%+.^^^",FloatInt_Float(nombre_flottant_en_Float)));
                                        /* Le 20060105153232, le format "16g" est passe a "^^g" pour plus de souplesse...            */
                                        /*                                                                                           */
                                        /* Le 20091123123018, le format "^^g" est passe a "^^^" pour plus de souplesse...            */
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test(IL_FAUT(entrer_un_nombre_flottant))
               Bblock
               EGAL(flint_FloaT(nombre_flottant_en_vrai_Float_de_base),FloatInt_Float(nombre_flottant_en_Float));

               CAL2(Prin1("0x%08x",flint_InT(nombre_flottant_en_vrai_Float_de_base)));
               Eblock
          ATes
               Bblock
               CAL2(Prin1("%+.8g",flint_FloaT(nombre_flottant_en_vrai_Float_de_base)));
               Eblock
          ETes
          Eblock
     ETes
#Aif      (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                            \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                              \
           )
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("double=""Float=",le_nombre_flottant_est_en_Float);
                         GET_ARGUMENT_N("simple=",le_nombre_flottant_est_en_Float);
                         GET_ARGUMENT_L("flottant=""float=",entrer_un_nombre_flottant);
                         GET_ARGUMENT_N("int=""hexa=""entier=",entrer_un_nombre_flottant);
                         GET_ARGUMENT_F("x=",FloatInt_Float(nombre_flottant_en_Float));
                         GET_ARGUMENT_F("xd=",FloatInt_Float(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i1=",FloatInt_Int_1(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i2=",FloatInt_Int_2(nombre_flottant_en_Float));
                         GET_ARGUMENT_I("i=",flint_InT(nombre_flottant_en_vrai_Float_de_base));
                         )
                    )

     Test(EST_VRAI(le_nombre_flottant_est_en_Float))
          Bblock
          Test(IL_FAUT(entrer_un_nombre_flottant))
               Bblock
               CAL2(Prin2("0x%08x 0x%08x",FloatInt_Int_1(nombre_flottant_en_Float),FloatInt_Int_2(nombre_flottant_en_Float)));
               Eblock
          ATes
               Bblock
               CAL2(Prin1("%+.^^^",FloatInt_Float(nombre_flottant_en_Float)));
                                        /* Le 20060105153232, le format "16g" est passe a "^^g" pour plus de souplesse...            */
                                        /*                                                                                           */
                                        /* Le 20091123123018, le format "^^g" est passe a "^^^" pour plus de souplesse...            */
               Eblock
          ETes
          Eblock
     ATes
          Bblock
          Test(IL_FAUT(entrer_un_nombre_flottant))
               Bblock
               EGAL(flint_FloaT(nombre_flottant_en_vrai_Float_de_base),FloatInt_Float(nombre_flottant_en_Float));

               CAL2(Prin1("0x%08x",flint_InT(nombre_flottant_en_vrai_Float_de_base)));
               Eblock
          ATes
               Bblock
               CAL2(Prin1("%+.8g",flint_FloaT(nombre_flottant_en_vrai_Float_de_base)));
               Eblock
          ETes
          Eblock
     ETes
#Eif      (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                            \
          ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                              \
          ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                              \
           )

     CAL2(Prin0("\n"));

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.