예제 #1
0
 // Convert unsigned float to string with 1.23 format
 char* ftostr12ns(const float &f) {
   const long i = ((f < 0 ? -f : f) * 1000 + 5) / 10;
   conv[3] = DIGIMOD(i, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return &conv[3];
 }
예제 #2
0
 // Convert unsigned float to string with 1.23 format
 char* ftostr12ns(const float& x) {
   const long xx = (x < 0 ? -x : x) * 100;
   conv[3] = DIGIMOD(xx, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[3];
 }
예제 #3
0
 // Convert signed float to fixed-length string with 023.45 / -23.45 format
 char* ftostr52(const float &f) {
   long i = (f * 1000 + (f < 0 ? -5: 5)) / 10;
   conv[1] = MINUSOR(i, DIGIMOD(i, 10000));
   conv[2] = DIGIMOD(i, 1000);
   conv[3] = DIGIMOD(i, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return &conv[1];
 }
예제 #4
0
 // Convert unsigned 16bit int to lj string with 123 format
 char* i16tostr3left(const int16_t i) {
   char *str = &conv[6];
   *str = DIGIMOD(i, 1);
   if (i >= 10) {
     *(--str) = DIGIMOD(i, 10);
     if (i >= 100)
       *(--str) = DIGIMOD(i, 100);
   }
   return str;
 }
예제 #5
0
 // Convert float to fixed-length string with +123.4 / -123.4 format
 char* ftostr41sign(const float& x) {
   int xx = x * 10;
   conv[1] = MINUSOR(xx, '+');
   conv[2] = DIGIMOD(xx, 1000);
   conv[3] = DIGIMOD(xx, 100);
   conv[4] = DIGIMOD(xx, 10);
   conv[5] = '.';
   conv[6] = DIGIMOD(xx, 1);
   return &conv[1];
 }
예제 #6
0
 // Convert float to fixed-length string with +123.4 / -123.4 format
 char* ftostr41sign(const float &f) {
   int i = (f * 100 + (f < 0 ? -5: 5)) / 10;
   conv[1] = MINUSOR(i, '+');
   conv[2] = DIGIMOD(i, 1000);
   conv[3] = DIGIMOD(i, 100);
   conv[4] = DIGIMOD(i, 10);
   conv[5] = '.';
   conv[6] = DIGIMOD(i, 1);
   return &conv[1];
 }
예제 #7
0
 // Convert unsigned int to lj string with 123 format
 char* itostr3left(const int& xx) {
   char *str = &conv[6];
   *str = DIGIMOD(xx, 1);
   if (xx >= 10) {
     *(--str) = DIGIMOD(xx, 10);
     if (xx >= 100)
       *(--str) = DIGIMOD(xx, 100);
   }
   return str;
 }
예제 #8
0
 // Convert signed float to string (6 digit) with -1.234 / _0.000 / +1.234 format
 char* ftostr43sign(const float& x, char plus/*=' '*/) {
   long xx = x * 1000;
   conv[1] = xx ? MINUSOR(xx, plus) : ' ';
   conv[2] = DIGIMOD(xx, 1000);
   conv[3] = '.';
   conv[4] = DIGIMOD(xx, 100);
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[1];
 }
예제 #9
0
 // Convert signed float to string (6 digit) with -1.234 / _0.000 / +1.234 format
 char* ftostr43sign(const float &f, char plus/*=' '*/) {
   long i = (f * 10000 + (f < 0 ? -5: 5)) / 10;
   conv[1] = i ? MINUSOR(i, plus) : ' ';
   conv[2] = DIGIMOD(i, 1000);
   conv[3] = '.';
   conv[4] = DIGIMOD(i, 100);
   conv[5] = DIGIMOD(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return &conv[1];
 }
예제 #10
0
 // Convert signed float to fixed-length string with 023.45 / -23.45 format
 char *ftostr32(const float& x) {
   long xx = x * 100;
   conv[1] = MINUSOR(xx, DIGIMOD(xx, 10000));
   conv[2] = DIGIMOD(xx, 1000);
   conv[3] = DIGIMOD(xx, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[1];
 }
예제 #11
0
 // Convert unsigned float to string with 1234.56 format omitting trailing zeros
 char* ftostr62rj(const float &f) {
   const long i = ((f < 0 ? -f : f) * 1000 + 5) / 10;
   conv[0] = RJDIGIT(i, 100000);
   conv[1] = RJDIGIT(i, 10000);
   conv[2] = RJDIGIT(i, 1000);
   conv[3] = DIGIMOD(i, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return conv;
 }
예제 #12
0
 // Convert signed float to string with +123.45 format
 char* ftostr52sign(const float &f) {
   long i = (f * 1000 + (f < 0 ? -5: 5)) / 10;
   conv[0] = MINUSOR(i, '+');
   conv[1] = DIGIMOD(i, 10000);
   conv[2] = DIGIMOD(i, 1000);
   conv[3] = DIGIMOD(i, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return conv;
 }
예제 #13
0
 // Convert float to rj string with 1234, _123, -123, _-12, 12.3, _1.2, or -1.2 format
 char *ftostr4sign(const float& fx) {
   const int x = fx * 10;
   if (!WITHIN(x, -99, 999)) return itostr4sign((int)fx);
   const bool neg = x < 0;
   const int xx = neg ? -x : x;
   conv[3] = neg ? '-' : (xx >= 100 ? DIGIMOD(xx, 100) : ' ');
   conv[4] = DIGIMOD(xx, 10);
   conv[5] = '.';
   conv[6] = DIGIMOD(xx, 1);
   return &conv[3];
 }
예제 #14
0
 // Convert float to rj string with 1234, _123, -123, _-12, 12.3, _1.2, or -1.2 format
 char* ftostr4sign(const float &f) {
   const int i = (f * 100 + (f < 0 ? -5: 5)) / 10;
   if (!WITHIN(i, -99, 999)) return i16tostr4sign((int)f);
   const bool neg = i < 0;
   const int ii = neg ? -i : i;
   conv[3] = neg ? '-' : (ii >= 100 ? DIGIMOD(ii, 100) : ' ');
   conv[4] = DIGIMOD(ii, 10);
   conv[5] = '.';
   conv[6] = DIGIMOD(ii, 1);
   return &conv[3];
 }
예제 #15
0
 // Convert signed float to string with +123.45 format
 char* ftostr52sign(const float& x) {
   long xx = x * 100;
   conv[0] = MINUSOR(xx, '+');
   conv[1] = DIGIMOD(xx, 10000);
   conv[2] = DIGIMOD(xx, 1000);
   conv[3] = DIGIMOD(xx, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return conv;
 }
예제 #16
0
 // Convert unsigned float to string with 1234.56 format omitting trailing zeros
 char* ftostr62rj(const float& x) {
   const long xx = (x < 0 ? -x : x) * 100;
   conv[0] = RJDIGIT(xx, 100000);
   conv[1] = RJDIGIT(xx, 10000);
   conv[2] = RJDIGIT(xx, 1000);
   conv[3] = DIGIMOD(xx, 100);
   conv[4] = '.';
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return conv;
 }
예제 #17
0
 // Convert signed int to rj string with 123 or -12 format
 char* itostr3(const int& x) {
   int xx = x;
   conv[4] = MINUSOR(xx, RJDIGIT(xx, 100));
   conv[5] = RJDIGIT(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[4];
 }
예제 #18
0
 // Convert unsigned 16bit int to string 1234 format
 char* ui16tostr4(const uint16_t xx) {
   conv[3] = RJDIGIT(xx, 1000);
   conv[4] = RJDIGIT(xx, 100);
   conv[5] = RJDIGIT(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[3];
 }
예제 #19
0
 // Convert signed int to rj string with 1234, _123, -123, _-12, or __-1 format
 char *itostr4sign(const int& x) {
   const bool neg = x < 0;
   const int xx = neg ? -x : x;
   if (x >= 1000) {
     conv[3] = DIGIMOD(xx, 1000);
     conv[4] = DIGIMOD(xx, 100);
     conv[5] = DIGIMOD(xx, 10);
   }
   else {
     if (xx >= 100) {
       conv[3] = neg ? '-' : ' ';
       conv[4] = DIGIMOD(xx, 100);
       conv[5] = DIGIMOD(xx, 10);
     }
     else {
       conv[3] = ' ';
       conv[4] = ' ';
       if (xx >= 10) {
         conv[4] = neg ? '-' : ' ';
         conv[5] = DIGIMOD(xx, 10);
       }
       else {
         conv[5] = neg ? '-' : ' ';
       }
     }
   }
   conv[6] = DIGIMOD(xx, 1);
   return &conv[3];
 }
예제 #20
0
 // Convert signed 16bit int to rj string with 1234, _123, -123, _-12, or __-1 format
 char* i16tostr4sign(const int16_t i) {
   const bool neg = i < 0;
   const int ii = neg ? -i : i;
   if (i >= 1000) {
     conv[3] = DIGIMOD(ii, 1000);
     conv[4] = DIGIMOD(ii, 100);
     conv[5] = DIGIMOD(ii, 10);
   }
   else if (ii >= 100) {
     conv[3] = neg ? '-' : ' ';
     conv[4] = DIGIMOD(ii, 100);
     conv[5] = DIGIMOD(ii, 10);
   }
   else {
     conv[3] = ' ';
     conv[4] = ' ';
     if (ii >= 10) {
       conv[4] = neg ? '-' : ' ';
       conv[5] = DIGIMOD(ii, 10);
     }
     else {
       conv[5] = neg ? '-' : ' ';
     }
   }
   conv[6] = DIGIMOD(ii, 1);
   return &conv[3];
 }
예제 #21
0
 // Convert unsigned float to rj string with 12345 format
 char* ftostr5rj(const float &f) {
   const long i = ((f < 0 ? -f : f) * 10 + 5) / 10;
   conv[2] = RJDIGIT(i, 10000);
   conv[3] = RJDIGIT(i, 1000);
   conv[4] = RJDIGIT(i, 100);
   conv[5] = RJDIGIT(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return &conv[2];
 }
예제 #22
0
 // Convert unsigned float to rj string with 12345 format
 char* ftostr5rj(const float& x) {
   const long xx = x < 0 ? -x : x;
   conv[2] = RJDIGIT(xx, 10000);
   conv[3] = RJDIGIT(xx, 1000);
   conv[4] = RJDIGIT(xx, 100);
   conv[5] = RJDIGIT(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[2];
 }
예제 #23
0
  // Convert signed float to space-padded string with -_23.4_ format
  char* ftostr52sp(const float& x) {
    long xx = x * 100;
    uint8_t dig;
    conv[1] = MINUSOR(xx, RJDIGIT(xx, 10000));
    conv[2] = RJDIGIT(xx, 1000);
    conv[3] = DIGIMOD(xx, 100);

    if ((dig = xx % 10)) {          // second digit after decimal point?
      conv[4] = '.';
      conv[5] = DIGIMOD(xx, 10);
      conv[6] = DIGIT(dig);
    }
    else {
      if ((dig = (xx / 10) % 10)) { // first digit after decimal point?
        conv[4] = '.';
        conv[5] = DIGIT(dig);
      }
      else                          // nothing after decimal point
        conv[4] = conv[5] = ' ';
      conv[6] = ' ';
    }
    return &conv[1];
  }
예제 #24
0
  // Convert signed float to space-padded string with -_23.4_ format
  char* ftostr52sp(const float &f) {
    long i = (f * 1000 + (f < 0 ? -5: 5)) / 10;
    uint8_t dig;
    conv[0] = MINUSOR(i, ' ');
    conv[1] = RJDIGIT(i, 10000);
    conv[2] = RJDIGIT(i, 1000);
    conv[3] = DIGIMOD(i, 100);

    if ((dig = i % 10)) {          // second digit after decimal point?
      conv[4] = '.';
      conv[5] = DIGIMOD(i, 10);
      conv[6] = DIGIT(dig);
    }
    else {
      if ((dig = (i / 10) % 10)) { // first digit after decimal point?
        conv[4] = '.';
        conv[5] = DIGIT(dig);
      }
      else                          // nothing after decimal point
        conv[4] = conv[5] = ' ';
      conv[6] = ' ';
    }
    return conv;
  }
예제 #25
0
 // Convert unsigned int to string with 12 format
 char* itostr2(const uint8_t& xx) {
   conv[5] = DIGIMOD(xx, 10);
   conv[6] = DIGIMOD(xx, 1);
   return &conv[5];
 }
예제 #26
0
 // Convert unsigned 8bit int to string 123 format
 char* ui8tostr3(const uint8_t i) {
   conv[4] = RJDIGIT(i, 100);
   conv[5] = RJDIGIT(i, 10);
   conv[6] = DIGIMOD(i, 1);
   return &conv[4];
 }