[Java] 연산자

rara_kim·2022년 6월 12일
0

Java

목록 보기
3/39
post-thumbnail

연산자

  • 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산(Operation)이라 한다.
  • 연산에 사용되는 표시나 기호를 연산자(Operator)라고 한다.
  • 연산되는 데이터는 피연산자(Operand)라고 한다.

항과 연산자

항은 연산을 할 때의 값을 의미하며, 연산자는 "연산을 수행하는 기호"를 의미한다.
1️⃣단항 연산자 : 항이 한 개

num++;
num--;

2️⃣이항 연산자 : 항이 두개

1 + 2;

3️⃣삼항 연산자 : 항이 세개

(3 > 1)? 1 : 0;     //괄호() 안의 조건이 맞으면 왼쪽값을, 틀리면 오른쪽 값을 반환

대입 연산자, 부호 연산자

1️⃣대입 연산자=
우측의 데이터를 좌측 변수에 대입하는 연산

int num = 100;

2️⃣부호 연산자+,-

+ 10;
- 10;

산술 연산자, 증가/감소 연산자

1️⃣산술 연산자
덧셈+, 뺄셈-, 곱셈*, 나눗셈/, 나머지%

int a = 1 + 2;
int b = 3 - 2;
int c = 1 * 2;
int d = 4 / 2;
int e = 6 % 2;

2️⃣증가/감소 연산자

  • 값을 1만큼 늘리거나++, 1만큼 줄임--
  • 연산자가 뒤에 붙은 경우에는 일단 값을 그대로 반환하고 그 다음부터 증가/감소
  • 반대로 연산자가 앞에 오는 경우에는 바로 증가/감소
ex) num++, ++num, num--, --num

int numZ = 1;
System.out.println(numZ++);  //1 출력
System.out.println(numZ);    //2 출력

numZ = 1;
System.out.println(++numZ)   //2 출력
System.out.println(numZ)     //3 출력

관계 연산자

  • >, <, !, ==
  • 두 항의 값의 크기를 비교
  • 결과 값은 비교 결과에 따라 true, false를 반환
ex) 10 > 9 ;    //false
    5 != 3 ;    //true
    
int numA = 10;
int numB = 9;

System.out.println(numA > numB);   //true
System.out.println(numA < numB);   //false
System.out.println(numA == numB);  //false
System.out.println(numA != numB);  //true

논리 연산자

  • &&(and), ||(or), !(not)
  • 논리식에 대해 참과 거짓을 판단
  • 결과 값은 비교 결과에 따라 true, false를 반환
(10 > 9) && (1 == 0)   //false
(10 > 9) || (1 == 0)   //true
5 != 3                 //true

복합 대입 연산자

대입 연산자와 다른 연산자를 조합한 연산 코드를 간결하게 작성할 때 사용

ex) num1 += num2;    //num1 = num1 + num2; 와 동일
ex) num1 %= num2;

int numX = 10;
int numY = 5;
numX += numY;
System.out.println("numX = " + numX);   //15 출력 

비트 논리 연산자

비트 단위로 연산

<기본 연산자>    <비트 연산자>
  5 && 3      0101 & 0011
  5 || 3      0101 | 0011

1️⃣AND 연산자&
두 개의 비트 값이 모두 1인 경우에만 결과 1

// 5 & 3
0101
0011
----
0001

2️⃣OR 연산자|
두 개의 비트 값 중 하나라도 1이면 결과 1

// 5 | 3
0101
0011
----
0111

3️⃣XOR 연산자^
두 개의 비트 값이 같으면 0, 다르면 1

// 5 ^ 3
0101
0011
----
0110

4️⃣반전 연산자~
비트 값이 0이면 1로, 1이면 0으로 반전

// ~ 5
0101
----
1010

비트 이동 연산자

1️⃣<<연산자
비트를 왼쪽으로 이동

// 3 << 1
0011
----
0110

// 3 << 2
0011
----
1100

2️⃣>>연산자
비트를 오른쪽으로 이동

// 3 >> 1
0011
----
0001

3️⃣>>>연산자
비트를 오른쪽으로 이동(빈자리는 부호비트 상관없이 0으로 채움)

profile
느리더라도 꾸준하게

0개의 댓글