Java

[Java] 자바의 연산자 (곱셈, 나눗셈, 덧셈, 비트연산자, 삼항연산자)

3o14 2023. 7. 14. 11:40
728x90
반응형

 

자바의 곱셈, 나눗셈 연산자, 비트연산자, 삼항연산자

 

 

🍊 곱셈 연산자  *

  • 곱셈 연산자는 두 개의 피연산자를 곱하여 결과를 반환합니다.
  • 피연산자는 숫자형 데이터 타입이어야 합니다.
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)

비트 연산자는 비트 단위의 연산을 수행하므로, 특정 비트 패턴에 대한 조작이나 플래그 설정 등에 사용됩니다. 주의할 점은 비트 연산자는 정수형 데이터에만 적용되며, 정수형 데이터를 비트 단위로 다룰 때 유용하게 활용할 수 있습니다. 적절한 비트 연산자의 활용을 통해 효율적인 데이터 조작과 다양한 연산을 수행할 수 있습니다.

 

 

 


🍊 마무리

오늘은 자바의 연산자에 대해서 알아보았습니다. 문법은 다른 언어들과 크게 차이는 없지만 정적 타입 언어라는 점은 주의해서 사용해야 할 것 같네요. 다음 포스팅으로는 반복문과 조건문을 알아볼게요 👀

LIST