이번 글에서는 int , short , long 타입의 차이점을 알아보려고 해요
Int는 4byte(32bit)로
-2147483648~2147483647
의 범위를 가지고 있어요
Short는 2byte(16bit)로
-32768~32767
의 범위를 가지고 있고
Long은 4byte(32bit)로
-2147483648~2147483647
의 범위를 가지고 있어요
그럼 여기서 첫번째로
Int와 Long은 범위가 같은데? 라는 생각이 드실건데
윈도우에서는 Int 와 Long 둘 다 4byte지만 리눅스(64bit)에서는 Long은 8byte(64bit)의 크기를
가지고 있어 2의 64 제곱인
-9223372036854775808 ~ 9223372036854775807
의 범위를 가지게 돼요
두 번째로는
32bit면은 2의 32승해서 0 ~ 4,294,967,295까지 아닌가요라는 착각이 드실 수 있는데 양수로
따지면 맞아요 하지만 음수도 있기에 2의 32승에서 2를 나누면
2^32 / 2 = 2^31 , 거기다가 컴퓨터에서는 0부터 시작이니 1을 빼면
음수부분은 2^31, 양수부분은 2^31 - 1 을 해서
-2147483648~2147483647 가 나오게 돼요