MCPcopy Create free account
hub / github.com/chen3feng/toft / OutputUInt32AsString

Function OutputUInt32AsString

base/string/number.cpp:408–482  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

406
407template <typename OutputIterator>
408static OutputIterator OutputUInt32AsString(uint32_t u, OutputIterator output)
409{
410 int digits;
411 const char *ASCII_digits = NULL;
412 if (u >= 1000000000) // >= 1,000,000,000
413 {
414 digits = u / 100000000; // 100,000,000
415 ASCII_digits = two_ASCII_digits[digits];
416 *output++ = ASCII_digits[0];
417 *output++ = ASCII_digits[1];
418sublt100_000_000:
419 u -= digits * 100000000; // 100,000,000
420lt100_000_000:
421 digits = u / 1000000; // 1,000,000
422 ASCII_digits = two_ASCII_digits[digits];
423 *output++ = ASCII_digits[0];
424 *output++ = ASCII_digits[1];
425sublt1_000_000:
426 u -= digits * 1000000; // 1,000,000
427lt1_000_000:
428 digits = u / 10000; // 10,000
429 ASCII_digits = two_ASCII_digits[digits];
430 *output++ = ASCII_digits[0];
431 *output++ = ASCII_digits[1];
432sublt10_000:
433 u -= digits * 10000; // 10,000
434lt10_000:
435 digits = u / 100;
436 ASCII_digits = two_ASCII_digits[digits];
437 *output++ = ASCII_digits[0];
438 *output++ = ASCII_digits[1];
439sublt100:
440 u -= digits * 100;
441lt100:
442 digits = u;
443 ASCII_digits = two_ASCII_digits[digits];
444 *output++ = ASCII_digits[0];
445 *output++ = ASCII_digits[1];
446done:
447 return output;
448 }
449
450 if (u < 100)
451 {
452 digits = u;
453 if (u >= 10) goto lt100;
454 *output++ = '0' + digits;
455 goto done;
456 }
457 if (u < 10000) // 10,000
458 {
459 if (u >= 1000) goto lt10_000;
460 digits = u / 100;
461 *output++ = '0' + digits;
462 goto sublt100;
463 }
464 if (u < 1000000) // 1,000,000
465 {

Callers 5

OutputInt32AsStringFunction · 0.85
OutputUInt64AsStringFunction · 0.85
OutputIntegerAsStringFunction · 0.85
WriteUInt32ToBufferFunction · 0.85
UInt32ToStringFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected