업무일지/기술
[데이터타입] java unsigned로 받은 데이터 부호있는 signed로 처리
_leezoee_
2022. 1. 6. 13:57
dnp3 메모리맵을 통해 읽은 데이터가 부호가 없는 unsigned 16비트(2바이트) 데이터라
-500 이라는 값을 받아야 되는데 65036 이런식으로 표기 되는 문제가 발생.
해당 기기는 C언어로 짜여있어서 이쪽 java 엔진과 데이터타입이 맞지 않음.
이런식으로 65036 으로 들어온 데이터를 hex스트링으로 변환 후 그걸 다시 Integer.parseInt("",16)을 통해 변환하고
그걸 마지막에 Int로 return 해주도록 ByteUtil에 함수를 만들어 두었다.
데이터 형식 범위는 아래 URL 참고
https://docs.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170