2012. 6. 26. 11:21
예를들어
byte형은 8bit로 수의 범위가 -2의7승~2의7승 -1 (-128~ 127 -1) 까지 인데
-1을 해주는 이유는 0때문인다.
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
뒷자리부터 2의0승 2의1승....2의6승까지 곱한뒤 더하여 2진수를 10진수로 바꾸는 것인데,
맨 앞자리는 부호를 뜻한다. 0이면 플리스 1이면 마이너스.
여기서 중요한것은
0은 양수 음수가 있지않다.
맨 앞자리가 0으로 플러스일때 0을 표현하려면
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
맨 앞자리가 1로 마이너스일때 0을 표현하려면
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
으로 두개가 되어버린다.
따라서 전체개수에서 -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 |