문법을 시작하기 전
용어나 원리에 대하여 정리하고자 한다.
변하는 수를 의미하며 값(숫자)를 의미한다.
이러한 숫자에게 의미를 부여하거나 담는 그릇이 바로 타입이다.
이 있지만 이 2개를 설명하기에 많은 사람이 오해를 가진다..
그렇기에 나는 아래의 추가적인 2개의 개념을 더하여 설명하고자 한다.
가장 원시적인 자료 타입이다.
Byte Short char Int Long Float Double과 같은 예약어를 사용하여 표현하며
각 자료 타입은 비트의 자리마다 의미나 Value(값)에 따라서 표현하는 데이터가 다름을 이해하자.
Byte, Short, Int, Long의 타입은 사용하여 자료표현 범위가 2^(N-1)승이다.
이때 왜 "-1"을 하는지 설명하기 위하여 Int를 기준으로 설명하자면.
1Byte는 8Bit이고 Int는 4Byte의 타입으로 총 32Bit의 타입이다.
여기서
각 비트의 의미는 아래와 같다.
Sign비트란 한글로 번역하자면 부호 비트이다.(Cpu의 아키텍처 또는 언어에 따라 다를 수 있다.)
즉 수가 "양의 수"인지 "음의 수"를 구분해주는 비트이다.
예를 들어
이라면 이 값은 1이지만.
이라면 이 값은 -1이다.
이와 같이 Sign Bit와 Data Bit가 나눠져 있으며.
이러한 표현 방식으로 인하여 Data Bit가 하나 줄어들게 되어
음수로는 -(2^(N-1)) ~ 2 ^ (N -1) -1 이라는 자료 표시 범위를 가지게 되는 것 이다.
여기서 왜 양의 정수 부분에서 "-1"을 또 하는가 하는 사람이 있을 것이다..
컴퓨터는 0도 양의 정수로 보기 때문에 표현 범위가 -1이 적다.(정확히 알고 싶다면 보수에 대해서 공부하시오.)
하지만 예외인 자료형이 있는데.
바로 Char 타입이다.
Char타입은 "문자"를 표현하기 위한 "타입"으로 JVM에서는 "UTF-16"이라는 "인코딩"방식을 사용하는데
이 "UTF-16"이라는 인코딩 방식에서는 음수를 쓰지 않으므로.
자료를 표현할때 0 ~ 2^N -1이라는 표현 범위를 가질 수 있다.("-1"인 이유는 위와 같다.)
다음 포스팅에는 실수형 타입을 설명하겠다.