03. Operator

Kim Sang Yeob·2022년 12월 28일

Study Java

목록 보기
3/3
post-thumbnail

학습할것

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • instanceof
  • assignment(=) operator
  • 화살표(->) 연산자
  • 3항 연산자
  • 연산자 우선 순위
  • java 13. switch 연산자

산술 연산자 (Arithmetic operator)

  • 수학적 계산에 사용되는 연산자.
  • 두 개의 피연산자를 가지는 이항 연산자.
  • 피연산자들의 결합 방향은 왼쪽에서 오른쪽.
산술 연산자설명산술 연산자설명
+더하기/나누기
-빼기%나머지
*곱하기
class Operator {
    public void ArithmeticOperator(){
        int a = 10, b = 7;

        System.out.println(a + b); // 17
        System.out.println(a - b); // 3
        System.out.println(a * b); // 70
        System.out.println(a / b); // 1
        System.out.println(a % b); // 3
    }
}

단항 연산자 (Unary Operator)

단항 연산자설명산술 연산자설명
+양수++1 증가
-음수--1 감소
!반대(논리 연산자)
public void UnaryOperator(){
        int result = +1;
        System.out.println(result); // 1

        result++;
        System.out.println(result); // 2

        result--;
        System.out.println(result); // 1

        result = -result;
        System.out.println(result); // -1

        boolean flag = false;
        System.out.println(flag); // false
        System.out.println(!flag); // true
    }

비트 연산자 (Bitwise Operator)

  • 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자.
  • 원형(순환) 시프트(Integer.rotateRight(a, k))의 연산은 내부적으로 (a > > > k) | (a < < (Integer.SIZE - k))와 같다.
비트 연산자설명
& (AND)대응되는 비트가 모두 1이면 1을 반환
| (OR)대응되는 비트 중에서 하나라도 1이면 1을 반환
^ (XOR)대응되는 비트가 서로 다르면 1을 반환
~ (NOT)비트를 1이면 0, 0이면 1로 반전
< < (Left shift)명시된 수만큼 비트들을 모두 왼쪽으로 이동
> > (Right shift)부호를 유지하고 지정된 수만큼 모두 오른쪽으로 이동
> > > (Unsigned Right shift)명시된 수만큼 비트들을 모두 오른쪽으로 이동, 새로운 비트는 0으로 채움
Integer.rotateRight(a, k) or Integer.rotateLeft(i, distance)명시된 수만큼 비트들을 오른쪽/왼쪽으로 이동시키고, 떨어져나간 비트들을 채워지는 비트 위치에 둔다
public void BitwiseOperator(){
        int result = ~(-13);
        // ~11111111,11111111,11111111,11110011 => 00000000,00000000,00000000,00001100
        
        System.out.println(result); // 12

        System.out.println(result & 7); // 4
        // ..00001100 & ..00000111 => ..00000100 

        System.out.println(result | 7); // 15
        // ..00001100 | ..00000111 => ..00001111

        System.out.println(result ^ 7); // 11
        // ..00001100 ^ ..00000111 => ..00001011

        System.out.println(result << 2); // 48
        // ..00001100 << 2 => 00110000

        System.out.println(result >> 3); // 1
        // ..00001100 >> 3 => 00000001

        System.out.println(~result >> 3); // -2
        // ..11110011 >> 3 => ..11111110

        System.out.println(~result >>> 3); // 536870910
        // ..11110011 >>> 3 => 00011111,11111111,11111111,11111110

        System.out.println(Integer.rotateRight(result,3)); // -2147483647
        // ..00001100 => 10000000,00000000,00000000,00000001 
    }

관계 연산자 (Relational Operator) & 비교 연산자 (Comparison Operator)

관계 연산자설명
==같으면 true
!=다르면 true
>왼쪽이 크면 true
>=왼쪽이 더 크거나 같으면 true
<오른쪽이 크면 true
<=오른쪽이 더 크거나 같으면 true

논리 연산자 (Logical operator)

논리 연산자설명
&& (AND)논리식이 모두 참이면 true
||논리식 중에 하나라도 참이면 true
!논리식이 true이면 false, flase이면 true

instanceof

=> 여기서부터 다시 작성하기.
참조

profile
Studying NodeJS...

0개의 댓글