자바에는 Unsigned 값이 없다는 군요~ char형만 Unsigned라나?
하지만 실제로는 byte값을 0~255까지의 값으로 써야 할 경우가 많이 있습니다.
그래서 데이터를 담는 것 까지는 좋은데, 출력해서 값을 확인하려고 보니, -128~127까지의 값으로 표현됩니다. 저는 ip주소를 보려고 찍었더니 음수값이 나와서.. 당황했지요 -_-;
해보지는 않았지만, 색깔 코드값도 같은 문제가 생기지 않을까… 싶습니다~ 아니면 말구요~
이럴 때는 편법을 써야겠죠?
byte b = (byte)200; <= 이렇게 byte형 변수에 127이 넘는 값이 들어 있다고 합시다
System.out.println(b); 를 하면…. '-56'이 출력됩니다.
정상적으로 200을 출력하려면
int i = (int)b&0xff;
System.out.println(i); 를 해 주시면 됩니다.
왜 이렇게 작동하는지는, 비트 연산에 대해서 아시는 분이라면 대충 감이 오실 듯 합니다 ^^