| # Gaudi Framework, version v22r2 |

Home |  | Generated: Tue May 10 2011

Functions

# xtoa.cpp File Reference

`#include <stdlib.h>`
`#include <limits.h>`
`#include "GaudiKernel/xtoa.h"`
Include dependency graph for xtoa.cpp:

Go to the source code of this file.

## Functions
static void __cdecl | xtoa (unsigned long val, char *buf, unsigned radix, int is_neg)
char *__cdecl | _itoa (int val, char *buf, int radix)
char *__cdecl | _ltoa (long val, char *buf, int radix)
char *__cdecl | _ultoa (unsigned long val, char *buf, int radix)

## Function Documentation

char* __cdecl _itoa | ( | int | val,
|  | char * | buf,
|  | int | radix
| ) |  |

Definition at line 83 of file xtoa.cpp.

                                                                     {
      if (radix == 10 && val < 0)
        xtoa((unsigned long)val, buf, radix, 1);
      else
        xtoa((unsigned long)(unsigned int)val, buf, radix, 0);
      return buf;
    }

char* __cdecl _ltoa | ( | long | val,
|  | char * | buf,
|  | int | radix
| ) |  |

Definition at line 91 of file xtoa.cpp.

                                                                     {
      xtoa((unsigned long)val, buf, radix, (radix == 10 && val < 0));
      return buf;
    }

char* __cdecl _ultoa | ( | unsigned long | val,
|  | char * | buf,
|  | int | radix
| ) |  |

Definition at line 96 of file xtoa.cpp.

                                                                                    {
      xtoa(val, buf, radix, 0);
      return buf;
    }

static void __cdecl xtoa | ( | unsigned long | val,
|  | char * | buf,
|  | unsigned | radix,
|  | int | is_neg
| ) |  | `[static]`

Definition at line 39 of file xtoa.cpp.

                                                                                      {
      char *p;    /* pointer to traverse string */
      char *firstdig;   /* pointer to first digit */
      char temp;    /* temp char */
      unsigned digval;  /* value of digit */

      p = buf;

      if (is_neg) {
        /* negative, so output '-' and negate */
        *p++ = '-';
        val = (unsigned long)(-(long)val);
      }

      firstdig = p;     /* save pointer to first digit */

      do {
        digval = (unsigned) (val % radix);
        val /= radix;   /* get next digit */

        /* convert to ascii and store */
        if (digval > 9)
          *p++ = (char) (digval - 10 + 'a');  /* a letter */
        else
          *p++ = (char) (digval + '0');       /* a digit */
      } while (val > 0);

      /* We now have the digit of the number in the buffer, but in reverse
         order.  Thus we reverse them now. */

      *p-- = '\0';    /* terminate string; p points to last digit */

      do {
        temp = *p;
        *p = *firstdig;
        *firstdig = temp;   /* swap *p and *firstdig */
        --p;
        ++firstdig;   /* advance to next two digits */
      } while (firstdig < p); /* repeat until halfway */
    }

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines