1 #pragma once 2 3 #include <array> 4 #include <cstddef> 5 #include <string> 6 7 inline std::string intToHexString(uint64_t value, size_t digits) 8 { 9 static constexpr std::array<char, 16> digitsArray = { 10 '0', '1', '2', '3', '4', '5', '6', '7', 11 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; 12 std::string rc(digits, '0'); 13 size_t bitIndex = (digits - 1) * 4; 14 for (size_t digitIndex = 0; digitIndex < digits; digitIndex++) 15 { 16 rc[digitIndex] = digitsArray[(value >> bitIndex) & 0x0f]; 17 bitIndex -= 4; 18 } 19 return rc; 20 } 21