for (i = 0; '0' <= (c = **s) && c <= '9'; ++*s)
i = i*10 + c - '0'; return i;
}
#define ZEROPAD 1/* pad with zero */ #define SIGN 2/* unsigned/signed long */ #define PLUS 4/* show plus */ #define SPACE 8/* space if plus */ #define LEFT 16/* left justified */ #define SPECIAL 32/* 0x */ #define LARGE 64/* use 'ABCDEF' instead of 'abcdef' */
staticchar * number(char * str, unsignedlonglong num, int base, int size, int precision, int type)
{ char c,sign,tmp[66]; constchar *digits="0123456789abcdefghijklmnopqrstuvwxyz"; int i;
if (type & LARGE)
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (type & LEFT)
type &= ~ZEROPAD; if (base < 2 || base > 36) return0;
c = (type & ZEROPAD) ? '0' : ' ';
sign = 0; if (type & SIGN) { if ((signedlonglong)num < 0) {
sign = '-';
num = - (signedlonglong)num;
size--;
} elseif (type & PLUS) {
sign = '+';
size--;
} elseif (type & SPACE) {
sign = ' ';
size--;
}
} if (type & SPECIAL) { if (base == 16)
size -= 2; elseif (base == 8)
size--;
}
i = 0; if (num == 0)
tmp[i++]='0'; elsewhile (num != 0) {
tmp[i++] = digits[do_div(num, base)];
} if (i > precision)
precision = i;
size -= precision; if (!(type&(ZEROPAD+LEFT))) while(size-->0)
*str++ = ' '; if (sign)
*str++ = sign; if (type & SPECIAL) { if (base==8)
*str++ = '0'; elseif (base==16) {
*str++ = '0';
*str++ = digits[33];
}
} if (!(type & LEFT)) while (size-- > 0)
*str++ = c; while (i < precision--)
*str++ = '0'; while (i-- > 0)
*str++ = tmp[i]; while (size-- > 0)
*str++ = ' '; return str;
}
int vsprintf(char *buf, constchar *fmt, va_list args)
{ int len; unsignedlonglong num; int i, base; char * str; constchar *s;
int flags; /* flags to number() */
int field_width; /* width of output field */ int precision; /* min. # of digits for integers; max
number of chars for from string */ int qualifier; /* 'h', 'l', or 'L' for integer fields */ /* 'z' support added 23/7/1999 S.H. */ /* 'z' changed to 'Z' --davidm 1/25/99 */
for (str=buf ; *fmt ; ++fmt) { if (*fmt != '%') {
*str++ = *fmt; continue;
}
int
printf(constchar *fmt, ...)
{
va_list args; int n;
va_start(args, fmt);
n = vsprintf(sprint_buf, fmt, args);
va_end(args); if (console_ops.write)
console_ops.write(sprint_buf, n); return n;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.