13 template <
unsigned int BITS>
16 assert(vch.size() ==
sizeof(data));
17 memcpy(data, &vch[0],
sizeof(data));
20 template <
unsigned int BITS>
23 char psz[
sizeof(data) * 2 + 1];
24 for (
unsigned int i = 0; i <
sizeof(data); i++)
25 sprintf(psz + i * 2,
"%02x", data[
sizeof(data) - i - 1]);
26 return std::string(psz, psz +
sizeof(data) * 2);
29 template <
unsigned int BITS>
32 memset(data, 0,
sizeof(data));
39 if (psz[0] ==
'0' && tolower(psz[1]) ==
'x')
43 const char* pbegin = psz;
47 unsigned char* p1 = (
unsigned char*)data;
48 unsigned char* pend = p1 + WIDTH;
49 while (psz >= pbegin && p1 < pend) {
52 *p1 |= ((
unsigned char)::
HexDigit(*psz--) << 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)
signed char HexDigit(char c)