posted by changhozz 2012. 6. 26. 11:21

예를들어

byte형은 8bit로 수의 범위가 -2의7승~2의7승 -1 (-128~ 127 -1) 까지 인데

-1을 해주는 이유는 0때문인다.

 0

뒷자리부터 2의0승 2의1승....2의6승까지 곱한뒤 더하여 2진수를 10진수로 바꾸는 것인데,

맨 앞자리는 부호를 뜻한다. 0이면 플리스 1이면 마이너스.

여기서 중요한것은

0은 양수 음수가 있지않다.

맨 앞자리가 0으로 플러스일때 0을 표현하려면

 

 맨 앞자리가 1로 마이너스일때 0을 표현하려면

 1

으로 두개가 되어버린다.

따라서 전체개수에서 -1을 빼주는 것이다. 

 

또한 음수로는 128까지고 양수로는 127인 이유는

 127을 음수로 바꾸려면 1의보수후 2의보수처리를하여 1을증가해서

-128이된다.

때문에 양수최대값보다 1큰것이 최소값이 되는것이다.

'JAVA > JAVA 공부' 카테고리의 다른 글

java.lang 패키지  (0) 2012.07.20
참조변수의 대한 설명  (0) 2012.06.29
JVM의 메모리 구조  (0) 2012.06.21
static 메서드  (0) 2012.05.22
public class  (0) 2012.05.22