This commit is contained in:
nub31
2025-12-31 01:43:22 +01:00
parent 68458ffca5
commit ffebc6de45

View File

@@ -83,55 +83,25 @@ void itoa64(i64 value, char *buffer) {
}
void uitoa64(u64 value, char *buffer) {
char *p = buffer;
char tmp[20];
int i = 0;
if (value == 0) {
*p++ = '0';
*p = '\0';
buffer[0] = '0';
buffer[1] = '\0';
return;
}
static const u64 powers[] = {
10000000000000000000ULL,
1000000000000000000ULL,
100000000000000000ULL,
10000000000000000ULL,
1000000000000000ULL,
100000000000000ULL,
10000000000000ULL,
1000000000000ULL,
100000000000ULL,
10000000000ULL,
1000000000ULL,
100000000ULL,
10000000ULL,
1000000ULL,
100000ULL,
10000ULL,
1000ULL,
100ULL,
10ULL,
1ULL
};
bool started = false;
for (int i = 0; i < 20; i++) {
u64 power = powers[i];
u32 digit = 0;
while (value >= power) {
value -= power;
digit++;
while (value > 0) {
tmp[i++] = '0' + (value % 10);
value /= 10;
}
if (digit || started) {
*p++ = '0' + digit;
started = true;
}
for (int j = 0; j < i; j++) {
buffer[j] = tmp[i - j - 1];
}
*p = '\0';
buffer[i] = '\0';
}
void uitoa64_hex(u64 value, char *buffer) {