home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource4 / 223_01 / itox.c < prev    next >
Text File  |  1979-12-31  |  768b  |  24 lines

  1. /*
  2. ** itox -- converts nbr to hex string of length sz
  3. **         right adjusted and blank filled, returns str
  4. **
  5. **        if sz > 0 terminate with null byte
  6. **        if sz = 0 find end of string
  7. **        if sz < 0 use last byte for data
  8. */
  9.    static int digit, offset;
  10.  
  11. itox(nbr, str, sz)  int nbr;  char str[];  int sz;  {
  12.   if(sz>0) str[--sz]=0;
  13.   else if(sz<0) sz = -sz;
  14.   else while(str[sz]!=0) ++sz;
  15.   while(sz) {
  16.     digit=nbr&15; nbr=(nbr>>4)&4095;
  17.     if(digit<10) offset=48; else offset=55;
  18.     str[--sz]=digit+offset;
  19.     if(nbr==0) break;
  20.     }
  21.   while(sz) str[--sz]=' ';
  22.   return str;
  23.   }
  24.