2010. 10. 17. 18:38
short 의 최대, 최소값 구하기 공부2010. 10. 17. 18:38
short 의 최대, 최소값
short 를 2바이트라고 쳤을 때 >> 16비트 라고 쳤을 때 정수를 나타낼 수 있는 최대값을
로 나타낼 수 있다. 그렇다면 최소값은 얼마일까? (제일 앞의 자리는 양, 음수 구분)
비트 단위로 따졌을 때 최대값에서 +1을 하게 되면 다음 비트의 최소값으로 변하게 된다.
위의 수에서 +1을 하였을 때의 수는 0111 1111 1111 1111 의
반대값인 1000 0000 0000 0000 이 된다.
실제로 그런지 계산해보자. 니들 단위로 나누어서 16진수로 바꾸게 되면
1000 0000 0000 0000
8 0 0 0 = 16진수 8000 으로 생각할 수 있다.
vi 에서 8000을 가볍게 10진수로 바꾸어보자.
1000 0000 0000 0000 = 10진수의 음수 -32768 이고
해당 수에서 -1을 하였을 때는 10진수의 양수 32767 이 됨을 알 수 있다.
아까 +1을 해서 1000 0000 0000 0000 을 구했으니
-1 을 하면 최초 원점에서 생각했던 0111 1111 1111 1111 = 32767이 됨을 알 수 있다.
short 의 최대값은 32767, 최소값은 -32768 임을 알수 있고
short 로 표현할 수 있는 수의 총 갯수는 65536 개로 결론.
short 를 2바이트라고 쳤을 때 >> 16비트 라고 쳤을 때 정수를 나타낼 수 있는 최대값을
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
로 나타낼 수 있다. 그렇다면 최소값은 얼마일까? (제일 앞의 자리는 양, 음수 구분)
비트 단위로 따졌을 때 최대값에서 +1을 하게 되면 다음 비트의 최소값으로 변하게 된다.
위의 수에서 +1을 하였을 때의 수는 0111 1111 1111 1111 의
반대값인 1000 0000 0000 0000 이 된다.
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
실제로 그런지 계산해보자. 니들 단위로 나누어서 16진수로 바꾸게 되면
1000 0000 0000 0000
8 0 0 0 = 16진수 8000 으로 생각할 수 있다.
vi 에서 8000을 가볍게 10진수로 바꾸어보자.
1000 0000 0000 0000 = 10진수의 음수 -32768 이고
해당 수에서 -1을 하였을 때는 10진수의 양수 32767 이 됨을 알 수 있다.
아까 +1을 해서 1000 0000 0000 0000 을 구했으니
-1 을 하면 최초 원점에서 생각했던 0111 1111 1111 1111 = 32767이 됨을 알 수 있다.
short 의 최대값은 32767, 최소값은 -32768 임을 알수 있고
short 로 표현할 수 있는 수의 총 갯수는 65536 개로 결론.
'공부' 카테고리의 다른 글
C언어 / 구구단 소스. (0) | 2010.10.17 |
---|---|
논리 연산자 계산순서( || && ) / 증감 연산자 (0) | 2010.10.17 |
아스키 코드 / 빠르게 아스키 코드 확인법 Alt + 숫자 (2) | 2010.10.17 |
signed 와 unsigned (0) | 2010.10.17 |
보수와 2진법에서 음수표현법 (0) | 2010.10.17 |