Test suite for auSpeed combo controller (ESC/power/servo) More info: http://aupilot.com.au
Dependencies: mbed
itoa.cpp@0:d38b3edad9b3, 2015-03-17 (annotated)
- Committer:
- Kir
- Date:
- Tue Mar 17 08:46:26 2015 +0000
- Revision:
- 0:d38b3edad9b3
release 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kir | 0:d38b3edad9b3 | 1 | |
Kir | 0:d38b3edad9b3 | 2 | /** |
Kir | 0:d38b3edad9b3 | 3 | * C++ version 0.4 char* style "itoa": |
Kir | 0:d38b3edad9b3 | 4 | * Written by Lukás Chmela |
Kir | 0:d38b3edad9b3 | 5 | * Released under GPLv3. |
Kir | 0:d38b3edad9b3 | 6 | */ |
Kir | 0:d38b3edad9b3 | 7 | |
Kir | 0:d38b3edad9b3 | 8 | char* itoa(int value, char* result, int base) |
Kir | 0:d38b3edad9b3 | 9 | { |
Kir | 0:d38b3edad9b3 | 10 | // check that the base if valid |
Kir | 0:d38b3edad9b3 | 11 | if ( base < 2 || base > 36 ) { |
Kir | 0:d38b3edad9b3 | 12 | *result = '\0'; |
Kir | 0:d38b3edad9b3 | 13 | return result; |
Kir | 0:d38b3edad9b3 | 14 | } |
Kir | 0:d38b3edad9b3 | 15 | |
Kir | 0:d38b3edad9b3 | 16 | char* ptr = result, *ptr1 = result, tmp_char; |
Kir | 0:d38b3edad9b3 | 17 | int tmp_value; |
Kir | 0:d38b3edad9b3 | 18 | |
Kir | 0:d38b3edad9b3 | 19 | do { |
Kir | 0:d38b3edad9b3 | 20 | tmp_value = value; |
Kir | 0:d38b3edad9b3 | 21 | value /= base; |
Kir | 0:d38b3edad9b3 | 22 | *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz"[35 + (tmp_value - value * base)]; |
Kir | 0:d38b3edad9b3 | 23 | } while ( value ); |
Kir | 0:d38b3edad9b3 | 24 | |
Kir | 0:d38b3edad9b3 | 25 | // Apply negative sign |
Kir | 0:d38b3edad9b3 | 26 | if ( tmp_value < 0 ) |
Kir | 0:d38b3edad9b3 | 27 | *ptr++ = '-'; |
Kir | 0:d38b3edad9b3 | 28 | *ptr-- = '\0'; |
Kir | 0:d38b3edad9b3 | 29 | |
Kir | 0:d38b3edad9b3 | 30 | while ( ptr1 < ptr ) { |
Kir | 0:d38b3edad9b3 | 31 | tmp_char = *ptr; |
Kir | 0:d38b3edad9b3 | 32 | *ptr-- = *ptr1; |
Kir | 0:d38b3edad9b3 | 33 | *ptr1++ = tmp_char; |
Kir | 0:d38b3edad9b3 | 34 | } |
Kir | 0:d38b3edad9b3 | 35 | |
Kir | 0:d38b3edad9b3 | 36 | return result; |
Kir | 0:d38b3edad9b3 | 37 | } |