티스토리 뷰
반응형
공백이 포함된 HEX문자열을 바이너리로 변환하는 c함수
//"f6 b2 7f 94 bf 2e 9b 5a 54 b5 fe 2b 46 ff f1 ec 55 14 fe b1 "
int if_HEX_char__add(char a,unsigned long *bin)
{
int bok=0;
if(('0'<=a)&&(a<='9'))
{
*bin=(*bin<<4)|(a-'0');
bok=1;
}
else if(('a'<=a)&&(a<='f'))
{
*bin=(*bin<<4)|(a-'a'+10);
bok=1;
}
else if(('A'<=a)&&(a<='F'))
{
*bin=(*bin<<4)|(a-'A'+10);
bok=1;
}
return bok;
}
int HEX_str_to_bin_with_space(const char *hex_str, unsigned char *bin_out,int bin_out_len)
{
int blen=0;
unsigned long a=0;
const char *s=hex_str;
while(*s)
{
if(blen>=bin_out_len)break;
a=0;
if(*s==' ')s++;
if(*s==0)break;
if(if_HEX_char__add(*s,&a))
{
s++;
if(if_HEX_char__add(*s,&a))
{
s++;
}
else
{
s++;
}
}
else
{
s++;
}
*bin_out=(unsigned char)(a&0xff);
bin_out++;
blen++;
}
return blen;
}
반응형
'C언어' 카테고리의 다른 글
작성중 - MonitorBrightness (0) | 2024.06.19 |
---|---|
mutex와 크리티컬섹션 성능 차이 (1) | 2024.06.15 |
mfcs42.pdb (0) | 2024.06.15 |
남이 짠 소스코드 분석하기 (1) | 2024.06.11 |
protocol buffer (0) | 2024.05.29 |