拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 234|回复: 0

C++中char类型的十六进制字符串转换成字节流

[复制链接]

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
发表于 2019-7-4 20:51:20 | 显示全部楼层 |阅读模式
如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);
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);


只想当咸鱼的程序员

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-25 21:39 , Processed in 0.190459 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表