604
社区成员
发帖
与我相关
我的任务
分享
int __stdcall CrnHexToByte(LPCSTR lpInBuf, LPBYTE lpOutBuf)
{
size_t uInLen;
uInLen = strlen(lpInBuf);
int nResult = 0;
if (uInLen < 2) return nResult;
BYTE c;
for (size_t i = 0; i < uInLen; i += 2)
{
// 输出高4位
c = lpInBuf[i];
if (c >= '0' && c <= '9') lpOutBuf[nResult] = (c - '0') << 4;
else if (c >= 'A' && c <= 'F') lpOutBuf[nResult] = (c - 'A' + 10) << 4;
// 输出低4位
c = lpInBuf[i + 1];
if (c >= '0' && c <= '9') lpOutBuf[nResult++] |= (c - '0');
else if (c >= 'A' && c <= 'F') lpOutBuf[nResult++] |= (c - 'A' + 10);
}
return nResult;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BYTE buff[4096];
int n = CrnHexToByte(S1->Text.c_str(), buff);
Caption = n;
}