Language/C [C] 배열을 float 형으로 변환(BYTE to float)
  • 728x90
    반응형

     

     

    비트 연산으로 변환

          

       

     

    • 배열의 값은 float형으로 5.05 를 나타낸다.

       

      

     

    • TCP/IP 통신을이용해 데이터를 수신하니 리틀엔디언 효과로 자리 변환이 일어났다.
    • 위와 같은 이유로 아래와같이 배열을 역순으로 비트연산 하였다.

     

     

     

    • iii 는 unsigned long type 이고, ii 는 float type 이다.
    • 0xFF 는 부호가 없는 정수일경우 없어도 무방하지만 부호가있는 정수는 0xFF를 and연산해주어야 한다.(부호확장 방지)
    • 빨간 박스의 코드와 같이 가져온값은 float로 꼭 변환하여 사용해야 한다.

     

     

    union 사용

     

       

     

    • union 구조체로 선언하면 동일한 값이 자동으로 들어간다.
    • unsigned char일경우 부호가 없기 때문에 부호확장시 전부 0을 채워넣는다. 그래서 &0xFF가 필요 없다.

     

    결과

     

     

     

     

     

    728x90
    반응형
상단으로