Language/C
[C] 배열을 float 형으로 변환(BYTE to float)
Dexter_-
2016. 9. 19. 10:24
728x90
반응형
비트 연산으로 변환
- 배열의 값은 float형으로 5.05 를 나타낸다.
- TCP/IP 통신을이용해 데이터를 수신하니 리틀엔디언 효과로 자리 변환이 일어났다.
- 위와 같은 이유로 아래와같이 배열을 역순으로 비트연산 하였다.
- iii 는 unsigned long type 이고, ii 는 float type 이다.
- 0xFF 는 부호가 없는 정수일경우 없어도 무방하지만 부호가있는 정수는 0xFF를 and연산해주어야 한다.(부호확장 방지)
- 빨간 박스의 코드와 같이 가져온값은 float로 꼭 변환하여 사용해야 한다.
union 사용
- union 구조체로 선언하면 동일한 값이 자동으로 들어간다.
- unsigned char일경우 부호가 없기 때문에 부호확장시 전부 0을 채워넣는다. 그래서 &0xFF가 필요 없다.
결과
728x90
반응형