본문 바로가기

Java/Java SE, EE

[Java/Java SE, EE] 부호(+, -) 연산자

부호(+, -) 연산자

부호 연산자는 숫자에서 양수 또는 음수를 표현하기 위한 + 또는 - 기호를 의미합니다. 부호 연산자는 boolean과 char 타입을 제외한 Primitive 타입에서 모두 사용 할 수 있습니다.

구분 연산자 항의 개수 연산식 결과
부호 + 또는 - 단항 양수 또는 음수

리터럴 상수에 부호 연산자를 전위 연산자로 붙여서 사용하며, 숫자를 저장하고 있는 다른 변수에도 사용 할 수 있습니다.

int a = +100;		// 100
int b = +a;		// 100
int c = -a;		// -100

부호 연산자를 사용 시 주의할 점은, 정수형 피연산자의 경우 산출 타입이 int 타입이 된다는 점입니다. 아래 예시를 보면, 변수 a와 b는 부호 연산자를 붙였을 때 산출 타입이 int 타입입니다. long 타입 변수 d의 경우에도 산출 타입은 int 타입이지만, 기존 피연산자의 데이터 범위가 더 크기 때문에 묵시적 형 변환이 발생하였기 때문에 long 타입으로 산출 되었습니다. 따라서 예시 마지막 코드와 같이 부호 연산 이후 산출 결과를 int 타입보다 작은 데이터 타입 변수에 저장하려고 하면 컴파일 오류를 발생시킵니다.

byte a = 100;
short b = 100;
int c = 100;
long d = 100l;

System.out.println(((Object)(+a)).getClass().getSimpleName());		// Integer
System.out.println(((Object)(+b)).getClass().getSimpleName());		// Integer
System.out.println(((Object)(+c)).getClass().getSimpleName());		// Integer
System.out.println(((Object)(+d)).getClass().getSimpleName());		// Long

// 아래 코드는 컴파일 오류를 발생시킨다.
// b = -b;