C++中char類型的十六進制字符串轉換成字節流


如a[5]="1234"轉換成a[5]={0x12,0x34}

代碼如下:

void HexStrToByte(const char* source, unsigned char* dest, int sourceLen)
{
short i;
unsigned char highByte, lowByte;

for (i = 0; i < sourceLen; i += 2)
{
highByte = toupper(source[i]);
lowByte = toupper(source[i + 1]);

if (highByte > 0x39)
highByte -= 0x37;
else
highByte -= 0x30;

if (lowByte > 0x39)
lowByte -= 0x37;
else
lowByte -= 0x30;

dest[i / 2] = (highByte << 4) | lowByte;
}
return ;
}

 

 

 

 

int main(void)
{
BYTE bufASC[1024]={0};
char ha[7] = "ef2233";
unsigned char temp[200]={0};
HexStrToByte(ha,temp,6);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM