본문 바로가기

Mobile_Programing/Android

Unsigned Byte 사용법

이번에 c#과 android를 통신하는 모듈을 개발중이었는데, 자꾸 데이터가 정상적으로 동작하지 않아 확인해보니
안드로이드 뿐만아니라, 자바라는 언어 자체에서 Byte를 사용할때 signed byte를 사용하였다.
c#은 물론 unsigned byte를 사용한다. 그래서, 데이터가 정상적으로 가지않아서 패킷식별이 원활하지 않았다.

비트시프트를 이용해서
byte buffer = -127; 이란값을 정상적인 unsigned값으로 출력하기 위해
int s = (int)buffer&0xff로 마스크값을 제거하니,
값이 정상적으로 출력되는 것을 볼 수 있었다.


편법이긴하지만, 패킷의 데이터를 식별하는데는 무리가 없었기 때문에
필요한 상황에서는 사용하는것도 나쁘지 않을것같다