[JAVA] JAVA 데이터 타입 - 숫자
이번 포스트 이후로 프로그래밍에서 가장 중요하지만 기초가 되는 데이터 타입에 대해서 알아보도록 하겠으며, 첫 번째 시간이니 숫자형에 대해서 알아보도록 하겠습니다.
프로그래밍에서 자료형(date type)이란 데이터의 종류와 크기를 결정하는 기본 구성 요소로 숫자, 문자열처럼 자료 형태로 사용하는 모든 것을 뜻 합니다.
프로그램에서 가장 기본적이면서 핵심 단위가 되는 것이 바로 자료형입니다. 따라서 자료형을 충분히 이해하지 않고 프로그래밍을 시작하려는 것은 기초 공사를 제대로 하지 않고 건물을 세우는 것과 같다고 할 수 있습니다.
프로그래밍 언어를 배울 때 “그 언어의자료형을 알면 이미 그 언어의 반을 터득한 것이나 다름없다” 라는 말이 있다고 합니다. 이렇듯 자료형은 프로그래밍에서 가장 기초가 되는 중요한 부분이니 주의를 기울여 자세 살펴보도록 합시다.
1. 정수
JAVA 에서 정수를 표현하는 자료형은 int, long 이 있습니다. int 와 long 은 표현할 수 있는 숫자의 범위 차이가 있습니다. 추가로 byte 와 short 도 있습니다만 많이 쓰이진 않고 특정 상황에서 효율적인 메모리 사용이 필요한 경우에 사용합니다.
자료형 | 표현범위 |
---|---|
int | -2147483648 ~ 2147483647 |
long | -9223372036854775808 ~ 9223372036854775807 |
byte | -128 ~ 127 |
short | -32768 ~ 32767 |
int 와 long 을 사용한 예시를 살펴보도록 하겠습니다.
int age = 10;
int countOfStart = 8764827384923849L
long 자료형 변수에 값을 대입할 때 int 자료형의 최댓값인 2147483647보다 크면 8764827384923849L
처럼 끝에 접미사로 L 을 붙여주어야 합니다. 그렇지 않으면 컴파일 단계에서 오류가 발생합니다.
알파벳 대문자 L 대신 소문자 l 도 사용할 수 있지만 숫자 1과 비슷해서 헷갈릴 수 있어 대문자 L만 사용하는 것을 추천 드립니다.
추후 List, Set, Map 에서 다루겠지만 JAVA 에서 제공하는 자료구조에서 정수를 사용할 때는 int 가 아닌 Integer 클래스를 이용합니다.
2. 실수
JAVA 에서 실수를 표현하는 자료형은 float, double 이 있습니다. float 과 double 역시 표현할 수 있는 숫자의 범위에 차이가 있습니다.
자료형 | 표현범위 |
---|---|
float | -3.4 * 1038 ~ 3.4 * 1038 |
double | -1.7 * 10308 ~ 1.7 * 10308 |
float 과 double 을 사용한 예를 살펴보도록 하겠습니다.
float pi = 3.14F;
double morePi = 3.14159265358979323846;
JAVA 에서 실수형은 기본값이 double 이므로 앞의 예에서 보듯이 float 변수에 값을 대입할 때에는 3.14F 처럼 끝에 접미사로 F 자를 꼭 붙여주어야 합니다. float 자료형에 값을 대입할 때 접미사를 누락하면 컴파일 오류가 발생합니다.
대문자 F 대신 소문자 f 를 사용해도 됩니다.
실수는 지수 표현식으로도 사용할 수 있습니다. 예시는 다음과 같습니다.
double d1 = 123.4;
double d2 = 1.234e2;
d1과 d2의 값은 123.4 로 같습니다. d2 의 e2는 10의 제곱(102)을 의미합니다.
3. 8진수와 16진수
8진수와 16진수는 int 자료형을 사용합니다. 숫자 0으로 시작하면 8진수, 숫자 0과 알파벳 x 로 시작하면 16진수가 됩니다. 8진수와 16진수를 사용한 예를 살펴보도록 하겠습니다.
023 과 0xC3 에 해당하는 십진수 값은 각각 19, 195 입니다.
int octal = 023; // 십진수 : 19
int hex = 0xC3; //십진수 : 195
8진수와 16진수 계산법
8진수는 0부터 7까지를 사용하여 숫자를 표현합니다. 예를 들어 8진수 23은 281 + 380 = 19 가 되어 십진수 19와 같습니다.
16진수는 0부터 9까지의 숫자와 A 부터 F 까지의 알파벳을 사용하여 숫자를 표현합니다. 알파벳 A 는 숫자 10, B 는 11, C는 12, D 는 13, E 는 14, F는 15를 의미합니다.
예를 들어 16진수 C3은 12161 + 3160</sup> = 195가 되어 십진수 195와 같습니다.
4. 숫자 연산
사칙연산과 나머지 연산
JAVA 의 사칙연산은 우리가 실생활에서 사용하는 사칙연산을 그대로 사용합니다. 덧셈은 +
, 뺄셈은 -
, 곱셈은 *
, 나눗셈은 /
기호를 이용하여 두 숫자 간의 사칙연산을 수행합니다.
추가적으로 프로그래밍에서는 나머지 값을 구하는데 사용하는 %
도 자주 사용하는데 주로 특정 범위 내에서 반복적인 수행을 하고자 할 때 자주 사용됩니다.
증감 연산
JAVA 에서는 ++
, --
기호를 이용해 값을 증가 또는 감소시킬 수 있습니다. 이 때 사용하는 ++
, --
기호를 증감 연산자라고 합니다.
아마 대부분 프로그래밍을 처음 배우실 때 이 증감 연산자 때문에 포기하시는 분들이 많을 거라고 생각됩니다. 실제로도 제가 대학교 1학년 때 이 부분에서 적성에 맞지 않는 사람들은 전과를 하거나 자퇴를 하는 모습을 많이 봤기 때문입니다. 그리고 저 또한 이 개념을 이해하기 까지 매우 힘들었기 때문에…
증감 연산자는 위치에 따라 실제 적용 되는 값이 달라집니다. 증감 연산자가 앞에 있다면 증감 계산을 먼저 적용하고 이후 계산에서 변수에 증감이 적용되고, 증감 연산자가 뒤에 있다면 증감 계산 적용 전에 먼저 처리되어야 할 연산이 있다 그 연산을 진행하고 증감 연산이 진행되게 됩니다.
이는 예시를 보시면 좀 더 쉽게 이해가 가실 거라서 예시를 보도록 하겠습니다.
증감 연사자가 앞에 있을 경우 값을 참조하기 전에 증가
int i = 0;
System.out.println((++i));
1 출력
증감 연산자가 뒤에 있을 경우 값을 참조한 후에 증가
int i = 0;
System.out.println((i++));
0 출력
이후에 반복문도 다루게 될텐데 그 때 한 번 더 이해가 되실 것으로 생각되며, 이 증감연산을 이해하시고 반복문을 보시게 되면 왜 반복문에서 그렇게 i++
을 사용하는지 이해가 되실겁니다.
Comments