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

Function OutputUInt64AsString

base/string/number.cpp:497–532  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

495
496template <typename OutputIterator>
497OutputIterator OutputUInt64AsString(uint64_t u64, OutputIterator output)
498{
499 int digits;
500 const char *ASCII_digits = NULL;
501
502 uint32_t u = static_cast<uint32_t>(u64);
503 if (u == u64) return OutputUInt32AsString(u, output);
504
505 uint64_t top_11_digits = u64 / 1000000000;
506 output = OutputUInt64AsString(top_11_digits, output);
507 u = static_cast<uint32_t>(u64 - (top_11_digits * 1000000000));
508
509 digits = u / 10000000; // 10,000,000
510 ASCII_digits = two_ASCII_digits[digits];
511 *output++ = ASCII_digits[0];
512 *output++ = ASCII_digits[1];
513 u -= digits * 10000000; // 10,000,000
514 digits = u / 100000; // 100,000
515 ASCII_digits = two_ASCII_digits[digits];
516 *output++ = ASCII_digits[0];
517 *output++ = ASCII_digits[1];
518 u -= digits * 100000; // 100,000
519 digits = u / 1000; // 1,000
520 ASCII_digits = two_ASCII_digits[digits];
521 *output++ = ASCII_digits[0];
522 *output++ = ASCII_digits[1];
523 u -= digits * 1000; // 1,000
524 digits = u / 10;
525 ASCII_digits = two_ASCII_digits[digits];
526 *output++ = ASCII_digits[0];
527 *output++ = ASCII_digits[1];
528 u -= digits * 10;
529 digits = u;
530 *output++ = '0' + digits;
531 return output;
532}
533
534template <typename OutputIterator>
535OutputIterator OutputInt64AsString(int64_t i, OutputIterator output)

Callers 4

OutputInt64AsStringFunction · 0.85
OutputIntegerAsStringFunction · 0.85
WriteUInt64ToBufferFunction · 0.85
UInt64ToStringFunction · 0.85

Calls 1

OutputUInt32AsStringFunction · 0.85

Tested by

no test coverage detected