fc_itoa small refine

remotes/origin/fstore_storage_engine
YuQing 2022-09-29 20:55:05 +08:00
parent 6ea757f492
commit 2b0796b166
1 changed files with 14 additions and 44 deletions

View File

@ -4064,22 +4064,21 @@ int fc_safe_write_file_init(SafeWriteFileInfo *fi,
int fc_itoa(int64_t n, char *buff) int fc_itoa(int64_t n, char *buff)
{ {
char *p; char *p;
int start; char *start;
int len; int len;
int i;
if (n < 0) { if (n < 0) {
n *= -1; n *= -1;
*buff = '-'; *buff = '-';
start = 1; start = buff + 1;
} else { } else {
start = 0; start = buff;
} }
if (n < FC_1E16) { if (n < FC_1E16) {
if (n < FC_1E08) { if (n < FC_1E08) {
if (n < FC_1E04) { if (n < FC_1E04) {
p = buff + start; p = start;
if (n < FC_1E02) { if (n < FC_1E02) {
if (n < FC_1E01) { if (n < FC_1E01) {
*p++ = '0' + n; *p++ = '0' + n;
@ -4100,66 +4099,37 @@ int fc_itoa(int64_t n, char *buff)
return p - buff; return p - buff;
} else { } else {
if (n < FC_1E06) { if (n < FC_1E06) {
if (n < FC_1E05) { len = (n < FC_1E05) ? 5 : 6;
len = 5;
} else {
len = 6;
}
} else { } else {
if (n < FC_1E07) { len = (n < FC_1E07) ? 7 : 8;
len = 7;
} else {
len = 8;
}
} }
} }
} else { } else {
if (n < FC_1E12) { if (n < FC_1E12) {
if (n < FC_1E10) { if (n < FC_1E10) {
if (n < FC_1E09) { len = (n < FC_1E09) ? 9 : 10;
len = 9;
} else {
len = 10;
}
} else { } else {
if (n < FC_1E11) { len = (n < FC_1E11) ? 11 : 12;
len = 11;
} else {
len = 12;
}
} }
} else { } else {
if (n < FC_1E14) { if (n < FC_1E14) {
if (n < FC_1E13) { len = (n < FC_1E13) ? 13 : 14;
len = 13;
} else {
len = 14;
}
} else { } else {
if (n < FC_1E15) { len = (n < FC_1E15) ? 15 : 16;
len = 15;
} else {
len = 16;
}
} }
} }
} }
} else { } else {
if (n < FC_1E18) { if (n < FC_1E18) {
if (n < FC_1E17) { len = (n < FC_1E17) ? 17 : 18;
len = 17;
} else {
len = 18;
}
} else { } else {
len = 19; len = 19;
} }
} }
p = buff + start + len - 1; for (p=start + len - 1; p>=start; p--) {
for (i=0; i<len; i++) { *p = '0' + n % 10;
*p-- = '0' + n % 10;
n /= 10; n /= 10;
} }
return start + len; return (start - buff) + len;
} }