正文
C/C++ 16进制转字符串,字符串转16进制 EX
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
{
int Encryption::HexToStr(char *Hex)
{
int _0 = ;
int _1 = ;
char buf[] = { };
if (Hex[] >= '' && Hex[] <= '')
{
buf[] = Hex[];
_0 = atoi(buf);
}
else
{
switch (Hex[])
{
case 'A':
{
_0 = ;
}; break;
case 'B':
{
_0 = ;
}; break;
case 'C':
{
_0 = ;
}; break;
case 'D':
{
_0 = ;
}; break;
case 'E':
{
_0 = ;
}; break;
case 'F':
{
_0 = ;
}; break;
} }
if (Hex[] >= '' && Hex[] <= '')
{
buf[] = Hex[];
_1 = atoi(buf);
}
else
{
switch (Hex[])
{
case 'A':
{
_1 = ;
}; break;
case 'B':
{
_1 = ;
}; break;
case 'C':
{
_1 = ;
}; break;
case 'D':
{
_1 = ;
}; break;
case 'E':
{
_1 = ;
}; break;
case 'F':
{
_1 = ;
}; break;
} } return _0 * + _1;
}char *Encryption::StringToHex_s(char *String, int Inlen)
{
if (String == NULL || String == nullptr) { return nullptr; } int BufLen = Inlen * + ; char *Buf = new char[BufLen];
memset(Buf, , BufLen); char buf[] = { }; for (int i = ; i < Inlen; i++)
{
sprintf_s(buf, "%02X", (unsigned char)String[i]);
(Buf + (i * ))[] = buf[];
(Buf + (i * ))[] = buf[];
}
return Buf;
}char *Encryption::StringToHex_s(const char *String, int Inlen)
{
return Encryption::StringToHex_s((char*)String,Inlen);
}char *Encryption::HexToString_s(char *Hex, int *OutLen)
{
if (Hex == NULL || Hex == nullptr) { return nullptr; } int HexLen = (int)strlen(Hex); if (HexLen % == )
{
int index = ;
int len = HexLen / ;
char *buf = new char[len + ];
memset(buf, , len + );
*OutLen = len;
for (int i = ; i < len; i++)
{
unsigned char var = Encryption::HexToStr(Hex + index);
buf[i] = var;
index += ;
}
return buf;
}
return NULL;
}char *Encryption::HexToString_s(const char *Hex, int *OutLen)
{
return Encryption::HexToString_s((char*)Hex, OutLen);
}
}