티스토리 뷰

C언어

HEX_str_to_bin_with_space

바람사탕 2025. 3. 8. 22:36
반응형

공백이 포함된 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
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함