Index Page
cspice_dp2hx
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Abstract
I/O
Examples
Particulars
Required Reading
Version
Index_Entries

Abstract


   CSPICE_DP2HX converts a double precision number to an equivalent character
   string using a base 16 ``scientific notation.''

   For important details concerning this module's function, please refer to
   the CSPICE routine dp2hx_c.

I/O

   
   Given:

      number   the scalar double precision number to convert to a character 
               string representation.
 
   the call:

      cspice_dp2hx, number, string
   
   returns:

      string   scalar string produced by this routine which represents 
               'number' in a base 16 ``scientific notation,'' e.g.:
   
                  672.0 = '2A^3' = ( 2/16 + 10/( 16**2 ) ) * 16**3
   
               and
   
                  -11.0 = '-B^1' = - ( 11/16 ) * 16**1.
   
               The following table describes the character set used to
               represent the hexadecimal digits and their corresponding
               values.
   
                    Character    Value         Character    Value
                    ---------    ------        ---------    ------
                      '0'         0.0D0          '8'         8.0D0
                      '1'         1.0D0          '9'         9.0D0
                      '2'         2.0D0          'A'        10.0D0
                      '3'         3.0D0          'B'        11.0D0
                      '4'         4.0D0          'C'        12.0D0
                      '5'         5.0D0          'D'        13.0D0
                      '6'         6.0D0          'E'        14.0D0
                      '7'         7.0D0          'F'        15.0D0
   
               The caret, or hat, character, '^', is used to
               distinguish the exponent.
   
               The plus sign, '+', and the minus sign, '-', are used,
               and they have their usual meanings.
   
               In order to obtain the entire character string produced
               by this routine, the output character string should be
               at least N characters long, where
   
   
                         # of bits per double precision mantissa + 3
               N = 3 + ----------------------------------------------
                                             4
   
                         # of bits per double precision exponent + 3
                     + ---------------------------------------------- .
                                             4
   
               There should be one character position for the sign of
               the mantissa, one for the sign of the exponent, one for
               the exponentiation character, and one for each
               hexadecimal digit that could be produced from a mantissa
               and an exponent.
   
               The following table contains minimum output string
               lengths necessary to obtain the complete character
               string produced by this routine for some typical
               implementations of double precision numbers.
   
               Double precision number
               Size Mantissa Exponent    Minimum output string length
               bits   bits     bits
               ---- -------- --------    ----------------------------
               64   48       15          3 + 12 + 4 = 19
               64   55+1     8           3 + 14 + 2 = 19 (VAX)
               64   52       11          3 + 13 + 3 = 19 (IEEE)
   
               The base 16 ``scientific notation'' character string
               produced by this routine will be left justified and
               consist of a contiguous sequence of characters with one
               of following formats:
   
                   (1)   h h h h  ... h ^H H  ... H
                          1 2 3 4      n  1 2      m
   
                   (2)   -h h h h  ... h ^H H  ... H
                           1 2 3 4      n  1 2      m
   
                   (3)   h h h h  ... h ^-H H  ... H
                          1 2 3 4      n   1 2      m
   
                   (4)   -h h h h  ... h ^-H H  ... H
                           1 2 3 4      n   1 2      m
   
               where
   
                  h   and  H   denote hexadecimal digits
                   i        j
   
                  '^'          denotes exponentiation ( base 16 )
   
               and
   
                  '+' and '-'  have their usual interpretations.

Examples


   Any numerical results shown for this example may differ between
   platforms as the results depend on the SPICE kernels used as input
   and the machine specific arithmetic implementation.

   The following input and output argument values illustrate the
   action of cspice_dp2hx for various input values of 'number'.

   Note: The hat or caret, '^', signals an exponent.

      number             string 
      -----------------  ----------------------------- 
           2.0D-9         89705F4136B4A8^-7
           1.0D0          1^1
          -1.0D0         -1^1
        1024.0D0          4^3
       -1024.0D0         -4^3
      521707.0D0          7F5EB^5
          27.0D0          1B^2
           0.0D0          0^0
           

Particulars


   This routine converts a double precision number into an equivalent
   character string using a base 16 ``scientific notation.'' This
   representation allows the full precision of a number to be placed
   in a format that is suitable for porting or archival storage.

   This routine is one of a pair of routines which are used to
   perform conversions between double precision numbers and
   an equivalent base 16 ``scientific notation'' character string
   representation:

      cspice_dp2hx -- Convert a double precision number into a base 16
                      ``scientific notation'' character string.

      cspice_hx2dp -- Convert a base 16 ``scientific notation''
                      character string into a double precision number.

Required Reading


   ICY.REQ

Version


   -Icy Version 1.0.0, 29-APR-2009 (EDW)

Index_Entries


   convert d.p. to signed normalized hexadecimal string
   convert d.p. number to encoded d.p. number
   convert d.p. to base 16 scientific notation



Wed Apr  5 17:58:00 2017