Arduino Core API Library besed on mbed platform.
Dependents: WeeESP8266 ESP8266_moj
Diff: itoas.cpp
- Revision:
- 0:5ebc917ebd09
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/itoas.cpp Thu Feb 05 07:24:30 2015 +0000 @@ -0,0 +1,88 @@ +#include "itoas.h" + +char* ltoa( long value, char *string, int radix ) +{ + char tmp[33]; + char *tp = tmp; + long i; + unsigned long v; + int sign; + char *sp; + if ( string == NULL ) + { + return 0 ; + } + if (radix > 36 || radix <= 1) + { + return 0 ; + } + sign = (radix == 10 && value < 0); + if (sign) + { + v = -value; + } + else + { + v = (unsigned long)value; + } + while (v || tp == tmp) + { + i = v % radix; + v = v / radix; + if (i < 10) + *tp++ = i+'0'; + else + *tp++ = i + 'a' - 10; + } + sp = string; + if (sign) + *sp++ = '-'; + while (tp > tmp) + *sp++ = *--tp; + *sp = 0; + return string; +} + +char* ultoa( unsigned long value, char *string, int radix ) +{ + char tmp[33]; + char *tp = tmp; + long i; + unsigned long v = value; + char *sp; + if ( string == NULL ) + { + return 0; + } + if (radix > 36 || radix <= 1) + { + return 0; + } + + while (v || tp == tmp) + { + i = v % radix; + v = v / radix; + if (i < 10) + *tp++ = i+'0'; + else + *tp++ = i + 'a' - 10; + } + sp = string; + + while (tp > tmp) + *sp++ = *--tp; + *sp = 0; + return string; +} + + +char* itoa( int value, char *string, int radix ) +{ + return ltoa( value, string, radix ) ; +} + +char* utoa( unsigned long value, char *string, int radix ) +{ + return ultoa( value, string, radix ) ; +}