2 바이트를 읽어서

7 비트 / 4비트 / 5비트로 쪼개서 데이터를 parsing하는 예제


//2 바이트를 하나의 값으로 계산을 한다

 int value = (qint8(rcvPacket[1] & 0x0F) * 16) + qint8(rcvPacket[2] & 0x0F) + ((rcvPacket[4] & 0x0F)*16 + (rcvPacket[5] & 0x0F)) * 256;


//하위 비트를 제거하기 위해서 9만큼 쉬프트를 한다 그 다음에 7비트가 모두 1인 값(0x7F)와 AND 연산을 한다

 int year = (value >> 9) & 0x7F;


//하위 비트를 제거하기 위해서 5만큼 쉬프트를 한다 그 다음에 4비트가 모두 1인 값(0x0F)와 AND 연산을 한다

 int month = (value >> 5) & 0x0F;


//하위 5비트와 AND연산을 한다.

  int date = value & 0x1F;


by 무위자연 2017. 11. 29. 15:10