프로그램을 하다가 보면 어떤 값을 자료형을 변환해줘야 하는 경우가 무수히 많다. char, unsigned char, int, unsigned int, short, long, float, double 등 자료처리를 위해 여러 번 변환해서 사용하는 경우가 많은데 변환과정에서의 오류나 실수도 많이 발생한다. 그중에서 오늘은 최근에 막내가 물어본 float을 HEX, HEX를 float으로 처리하는 방법을 간단하게 정리해 봅니다.
1. float 4 bytes
- 예를 들어 2.64579를 이진수로 변환하면 10.10100101010100101 인데 양수이므로 부호는 0
- 지수부는 1.010100101010100101 x 2^1 이므로 127 + n 에 의해 128 = 0x10000000
- 가수부는 01010010101010010100000
2. Float to Hex 변환 사이트
Flaot to Hex 변환 사이트: Floating Point to Hex Converter (gregstoll.com)
3. Float to Hex ( Hex to Float )
비트 연산과 포인터로 어렵게 계산하지 않고 아래와 같이 union 공용체 사용하면 계산 없이 사용 가능하다.
float 타입 변수를 float_vlaue에 입력 후 Hex타입 변수를 사용이 필요할 때 hex_value를 사용해서 데이터 처리하는 방법
union hex_to_float_union
{
unsigned int hex_value;
float float_value;
};
댓글