'byte'에 해당되는 글 1건

  1. 2008/05/06 # [JAVA] byte형 변수를 부호비트를 무시
2008/05/06 09:24

# [JAVA] byte형 변수를 부호비트를 무시

자바에서는 unsigned 형이 없다.
0xF8 는 부호를 무시하면 248이지만, byte형에서는 부호비트가 고려되어 -8로 출력된다.
   byte b = (byte)0xF8;
   System.out.println(b);
   ----
   결과
   ----
   -8

원하는 결과를 얻기위해 이 byte형 변수 b를  int형 변수에 그냥 대입하게 되면,
역시 -248이 출력된다.

   byte b = (byte)0xF8;
   int i = b;
   System.out.println(i);
   ----
   결과
   ----
   -8

일반적인 대입의 경우 산술적인 형확장이 일어나기 때문에 부호비트가 고려되며
byte의 첫번째 비트인 부호비트는 int형으로 형확장되면서 부호가 그대로 적용된다.

원하는 결과인 248을 얻으려면 다음과 같이 하면된다.
   byte b = (byte)0xF8;
  int value = b & 0xFF;
   System.out.println(value);
   ----
   결과
   ----
   248

크리에이티브 커먼즈 라이선스
Creative Commons License

'Programming' 카테고리의 다른 글

# NPTL  (0) 2008/05/29
# [JAVA] byte형 변수를 부호비트를 무시  (0) 2008/05/06
# Code Kata  (1) 2008/01/16
# CVS command list  (0) 2007/10/24
# Ship it! 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드  (0) 2007/10/11
# 프로그래머와 유치원생  (0) 2007/06/12
Trackback 0 Comment 0