java 에서 unsigned int ( byte의 값을 int로 변환)
Programming/JAVA 2007. 12. 5. 21:51
일단 JAVA가 C/C++의 unsigned 를 지원하지 않는건 맞구요,
그런 문제가 발생한다면 아래와 같은 식으로 해주시면 됩니다.
int val = myByte < 0 ? ( Byte.MAX_VALUE + 1 ) * 2 + myByte : myByte;
코드를 보시면 왜 저렇게 써야하는지는 이해를 할 수 있으리라 보네요.
log 의 경우에도 이런식으로 하시면 될것 같구요, 그리고 특별히
Byte, Integer, Long 등의 래퍼클래스의 MAX_VALUE나 MIN_VALUE를 넘지 않는 한은
특별히 신경쓸 이유도 없습니다.(당연하겠지만...)
저도 정확히는 알 수 없습니다만, 자바에서는 자체적으로 BigDecimal 등을 이용해서
C보다 더 큰 숫자를 표현할 수 있는 방법을 제공해 주기 때문에 굳이 C처럼
unsigned 를 지원할 필요가 없다고 생각한게 아닐까요? 라는 생각을 해봤습니다.
그런 문제가 발생한다면 아래와 같은 식으로 해주시면 됩니다.
int val = myByte < 0 ? ( Byte.MAX_VALUE + 1 ) * 2 + myByte : myByte;
코드를 보시면 왜 저렇게 써야하는지는 이해를 할 수 있으리라 보네요.
log 의 경우에도 이런식으로 하시면 될것 같구요, 그리고 특별히
Byte, Integer, Long 등의 래퍼클래스의 MAX_VALUE나 MIN_VALUE를 넘지 않는 한은
특별히 신경쓸 이유도 없습니다.(당연하겠지만...)
저도 정확히는 알 수 없습니다만, 자바에서는 자체적으로 BigDecimal 등을 이용해서
C보다 더 큰 숫자를 표현할 수 있는 방법을 제공해 주기 때문에 굳이 C처럼
unsigned 를 지원할 필요가 없다고 생각한게 아닐까요? 라는 생각을 해봤습니다.