[Java] 자바의 연산자 (곱셈, 나눗셈, 덧셈, 비트연산자, 삼항연산자)
자바의 곱셈, 나눗셈 연산자, 비트연산자, 삼항연산자
🍊 곱셈 연산자 *
- 곱셈 연산자는 두 개의 피연산자를 곱하여 결과를 반환합니다.
- 피연산자는 숫자형 데이터 타입이어야 합니다.
int num1 = 5;
int num2 = 3;
int result = num1 * num2;
System.out.println(result); // 출력: 15
🍊 나눗셈 연산자 /
- 나눗셈 연산자는 첫 번째 피연산자를 두 번째 피연산자로 나눈 결과를 반환합니다.
- 나누는 수 또는 나눠지는 수 중 하나 이상이 실수형일 경우 결과는 실수형으로 반환됩니다.
- 정수형을 정수형으로 나눌 경우 소수점 이하는 버려집니다.
int num1 = 10;
int num2 = 4;
int result = num1 / num2;
System.out.println(result); // 출력: 2
📌 주의해야 할 부분
자바에서는 int형끼리 한 계산식의 결과가 double이 될 경우에도 int로 반환합니다.
예를 들어 아래 코드를 봅시다.
int num = 1 / 3;
위와 같은 연산을 행할 때 자바스크립트나 파이썬과 같은 동적 타입 언어의 경우에는 num의 결과로 0.33333..이 나옵니다. 이는 int형 변수가 double로 자동 변환되기 때문입니다. 자바에서는 그런 것이 허용되지 않는 정적 타입 언어이기 때문에 0으로 반환됩니다.
🍊 더하기 연산자 /
- 더하기 연산자는 첫 번째 피연산자를 두 번째 피연산자로 더한 결과를 반환합니다.
int num1 = 10;
int num2 = 5;
int result = num1 + num2;
System.out.println(result); // 출력: 15
🍊 나머지 연산자 %
- 나머지 연산자는 첫 번째 피연산자를 두 번째 피연산자로 나눈 나머지를 반환합니다.
- 주로 어떤 수가 짝수인지, 홀수인지 판단할 때 사용됩니다.
int num1 = 10;
int num2 = 3;
int result = num1 % num2;
System.out.println(result); // 출력: 1
🍊 비트 이동 연산자
📍 비트 좌측 이동 연산자 <<
주어진 변수의 비트를 왼쪽으로 이동시킵니다. 이동된 비트는 0으로 채워집니다.
int a = 8; // 8의 이진 표현은 0000 1000
int b = a << 2; // a의 비트를 왼쪽으로 2칸 이동
// 결과: b = 32
// 이동 후 a의 이진 표현: 0010 0000
📍 비트 우측 이동 연산자 >>
주어진 변수의 비트를 오른쪽으로 이동시킵니다. 이동된 비트는 부호 비트(최상위 비트)와 동일한 값으로 채워집니다.
int a = -16; // -16의 이진 표현은 1111 0000
int b = a >> 3; // a의 비트를 오른쪽으로 3칸 이동
// 결과: b = -2
// 이동 후 a의 이진 표현: 1111 1110
🍊 삼항연산자
삼항 연산자는 자바에서 조건문을 간단하게 표현할 때 사용되는 연산자입니다.
조건식 ? 표현식1 : 표현식2
조건식은 true 또는 false를 평가할 수 있는 식이며, 표현식1과 표현식2는 조건식이 true일 때와 false일 때 각각 실행되는 표현식입니다.
int a = 10;
int b = 5;
int max = (a > b) ? a : b;
// a > b가 true이므로 max에는 a의 값인 10이 할당됩니다.
System.out.println(max); // 출력: 10
위의 예제에서는 a와 b를 비교하여 (a > b) 조건식을 평가합니다. 이 조건식이 true이면 삼항 연산자는 표현식1인 a를 반환하고, false이면 표현식2인 b를 반환합니다. 따라서 max 변수에는 a의 값인 10이 할당되어 출력 결과는 10이 됩니다.
🍊 복합대입연산자
📍 덧셈 후 할당 (+=)
변수에 값을 더한 후 그 결과를 변수에 다시 할당합니다.
예를 들어, 다음은 덧셈 후 할당 연산자의 사용 예입니다:
javaCopy code
int a = 5;
a += 3; // a = a + 3;
// 결과: a = 8
📍 뺄셈 후 할당 (=)
변수에서 값을 뺀 후 그 결과를 변수에 다시 할당합니다.
예를 들어, 다음은 뺄셈 후 할당 연산자의 사용 예입니다:
javaCopy code
int a = 10;
a -= 4; // a = a - 4;
// 결과: a = 6
📍 곱셈 후 할당 (=)
변수에 값을 곱한 후 그 결과를 변수에 다시 할당합니다.
예를 들어, 다음은 곱셈 후 할당 연산자의 사용 예입니다:
javaCopy code
int a = 3;
a *= 2; // a = a * 2;
// 결과: a = 6
📍 나눗셈 후 할당 (/=)
변수를 값으로 나눈 후 그 결과를 변수에 다시 할당합니다.
예를 들어, 다음은 나눗셈 후 할당 연산자의 사용 예입니다:
javaCopy code
int a = 10;
a /= 5; // a = a / 5;
// 결과: a = 2
📍 나머지 계산 후 할당 (%=)
변수를 값으로 나눈 나머지를 구한 후 그 결과를 변수에 다시 할당합니다.
예를 들어, 다음은 나머지 계산 후 할당 연산자의 사용 예입니다:
javaCopy code
int a = 15;
a %= 4; // a = a % 4;
// 결과: a = 3
복합 대입 연산자를 사용하면 변수 값을 간결하게 수정할 수 있으며, 코드의 가독성을 높일 수 있습니다. 이 연산자들은 변수 값을 수정하는 일반적인 연산들을 축약하여 표현할 수 있어 편리합니다.
🍊 비트연산자
📍 비트 AND 연산자 (&)
- 비트 AND 연산자는 두 개의 피연산자의 각 비트를 비교하여 둘 다 1인 경우에만 결과 비트를 1로 설정합니다.
예제 코드:
javaCopy code
int num1 = 5; // 0101
int num2 = 3; // 0011
int result = num1 & num2;
System.out.println(result); // 출력: 1 (0001)
📍 비트 OR 연산자 (|)
- 비트 OR 연산자는 두 개의 피연산자의 각 비트를 비교하여 하나라도 1인 경우 결과 비트를 1로 설정합니다.
예제 코드:
javaCopy code
int num1 = 5; // 0101
int num2 = 3; // 0011
int result = num1 | num2;
System.out.println(result); // 출력: 7 (0111)
📍 비트 XOR 연산자 (^)
- 비트 XOR 연산자는 두 개의 피연산자의 각 비트를 비교하여 서로 다른 경우 결과 비트를 1로 설정합니다.
예제 코드:
javaCopy code
int num1 = 5; // 0101
int num2 = 3; // 0011
int result = num1 ^ num2;
System.out.println(result); // 출력: 6 (0110)
📍 비트 NOT 연산자 (~)
- 비트 NOT 연산자는 단항 연산자로, 피연산자의 각 비트를 반전시킵니다.
예제 코드:
javaCopy code
int num = 5; // 0101
int result = ~num;
System.out.println(result); // 출력: -6 (1010)
비트 연산자는 비트 단위의 연산을 수행하므로, 특정 비트 패턴에 대한 조작이나 플래그 설정 등에 사용됩니다. 주의할 점은 비트 연산자는 정수형 데이터에만 적용되며, 정수형 데이터를 비트 단위로 다룰 때 유용하게 활용할 수 있습니다. 적절한 비트 연산자의 활용을 통해 효율적인 데이터 조작과 다양한 연산을 수행할 수 있습니다.
🍊 마무리
오늘은 자바의 연산자에 대해서 알아보았습니다. 문법은 다른 언어들과 크게 차이는 없지만 정적 타입 언어라는 점은 주의해서 사용해야 할 것 같네요. 다음 포스팅으로는 반복문과 조건문을 알아볼게요 👀