1 #ifndef LIBPROPELLER_NUMBERS_H_
2 #define LIBPROPELLER_NUMBERS_H_
26 static char *
Dec(
int number,
char result_string[] = NULL) {
27 if (result_string == NULL) {
28 result_string = internalBuffer;
33 if ((sign = number) < 0)
37 result_string[i++] = number % 10 +
'0';
38 }
while ((number /= 10) > 0);
40 result_string[i++] =
'-';
41 result_string[i] =
'\0';
56 static int Dec(
const char * number,
const char terminator =
'\0') {
59 bool isNegative =
false;
60 if (number[index] ==
'-') {
64 for (; number[index] != terminator; index++) {
66 result = (result * 10) + (number[index] -
'0');
87 static char *
Hex(
int number,
const int num_digits,
char result_string[] = NULL) {
88 if (result_string == NULL) {
89 result_string = internalBuffer;
91 static const char characters[] =
"0123456789ABCDEF";
93 for (i = 0; i < num_digits; i++) {
94 result_string[i] = characters[number & 0xF];
113 static char *
Bin(
int number,
int num_digits,
char result_string[] = NULL) {
114 if (result_string == NULL) {
115 result_string = internalBuffer;
118 static const char characters[] =
"01";
120 for (i = 0; i < num_digits; i++) {
121 result_string[i] = characters[number & 0b1];
124 result_string[i] = 0;
126 return result_string;
140 if (number < 100000) {
162 if (number < 10000000) {
164 if (number < 1000000)
170 if (number < 100000000)
174 if (number < 1000000000)
188 if ((n & 0xFFFF) == n) {
190 if ((n & 0xFF) == n) {
198 if ((n & 0xFFF) == n)
205 if ((n & 0xFFFFFF) == n) {
207 if ((n & 0xFFFFF) == n)
212 if ((n & 0xFFFFFFF) == n)
232 for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
245 static char internalBuffer[];
248 #endif // LIBPROPELLER_NUMBERS_H_