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
반응형