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) { void uitoa64(u64 value, char *buffer) {
char *p = buffer; char tmp[20];
int i = 0;
if (value == 0) { if (value == 0) {
*p++ = '0'; buffer[0] = '0';
*p = '\0'; buffer[1] = '\0';
return; return;
} }
static const u64 powers[] = { while (value > 0) {
10000000000000000000ULL, tmp[i++] = '0' + (value % 10);
1000000000000000000ULL, value /= 10;
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++;
} }
if (digit || started) { for (int j = 0; j < i; j++) {
*p++ = '0' + digit; buffer[j] = tmp[i - j - 1];
started = true;
}
} }
*p = '\0'; buffer[i] = '\0';
} }
void uitoa64_hex(u64 value, char *buffer) { void uitoa64_hex(u64 value, char *buffer) {