ASCII to Hex, 아스키코드 값 16진수로 바꾸기

728x90
반응형

오늘의 잡(?) 지식은 Ascii값을 Hex로 바꾸는 소스코드다. 내가 만듦. 일단 버그는 없다. 받아라 코드다.

 

uint32_t asciiToHex(uint8_t *str, uint16_t len)
{
	uint32_t ret = 0;
	uint16_t shift = 0;
	
	for(int i = (len-1); i >= 0; i--)	{
		if(str[i] >= '0' && str[i] <= '9')	{
			ret += (str[i] - '0') << shift;
		}
		else if(str[i] >= 'A' && str[i] <= 'F')	{
			ret += ((str[i] - 'A') + 10) << shift;
		}
		else if(str[i] >= 'a' && str[i] <= 'f') {
			ret += ((str[i] - 'a') + 10) << shift;
		}
		shift += 4;
	}

	return ret;
}

 

임베디드 환경에서 시리얼 통신을 할때 보통 Ascii 코드로 데이터를 주고받는다. 이 데이터에는 정수형, 실수형, 16진수 등 다양한 형식을 갖는 데이터가 있다. ascii to int, ascii to float는 있는데 ascii to hex는 없는 것 같다. 뭐 각자 알아서 만들어 써야지

만들어 쓰기 귀찮으면 이거 그냥 가져다 쓰면 된다. 

 

오늘의 포스팅 끝 ㅎㅎㅎㅎㅎ

 

- 끝 -

728x90
반응형