13 template <
unsigned int BITS>
16 assert(vch.size() ==
sizeof(m_data));
17 memcpy(m_data, vch.data(),
sizeof(m_data));
20 template <
unsigned int BITS>
23 uint8_t m_data_rev[WIDTH];
24 for (
int i = 0; i < WIDTH; ++i) {
25 m_data_rev[i] = m_data[WIDTH - 1 - i];
30 template <
unsigned int BITS>
33 memset(m_data, 0,
sizeof(m_data));
40 if (psz[0] ==
'0' && tolower(psz[1]) ==
'x')
45 while (::
HexDigit(psz[digits]) != -1)
47 unsigned char* p1 = (
unsigned char*)m_data;
48 unsigned char* pend = p1 + WIDTH;
49 while (digits > 0 && p1 < pend) {
52 *p1 |= ((
unsigned char)::
HexDigit(psz[--digits]) << 4);
58 template <
unsigned int BITS>
64 template <
unsigned int BITS>
void SetHex(const char *psz)
std::string ToString() const
std::string GetHex() const
void * memcpy(void *a, const void *b, size_t c)
std::string HexStr(const Span< const uint8_t > s)
Convert a span of bytes to a lower-case hexadecimal string.
signed char HexDigit(char c)