Fixed bug in hex formatting, wrote tests for hex int formatting

This commit is contained in:
2022-02-15 11:34:49 +01:00
parent 7115e09aca
commit 2933676ea2
4 changed files with 63 additions and 3 deletions

View File

@@ -101,7 +101,7 @@ constexpr inline const char* digits2_base(size_t value) {
return &"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
"202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F"
"404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F"
"606162636465666768696A6B6C6D6E6F707172737475767778796A6B6C6D6E6F"
"606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F"
"808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F"
"A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF"
"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF"
@@ -161,7 +161,7 @@ constexpr inline void format_base(char* out, uint_t value, int n_digits,
}
if (value < divisor) {
*--out = static_cast<char>('0' + value);
*--out = digits2_base<t_format_type>(value*divisor)[0];
return;
}