연산자

InSeok·2022년 5월 9일
0

자바

목록 보기
2/9

참조 : Do it Java 완전정복
http://www.yes24.com/Product/Goods/103389317

연산자의 종류

연산자의 종류와 연산 기호

자료형연산기호기능결과
산술 연산자=, -, *, /, %사칙연산 및 나머지 연산
증감연산자++, - -값이 1씩 증가 및 감소
비트 연산자&,, ~, ^비트 AND, OR, NOT, XOR
시프트 연산자>>, <<, >>>비트 단위 이동
비교연산자<, >, ≤,≥, ==, ≠값의 크기 비교참 또는 거짓
논리 연산자&&,, !, ^
대입 연산자=, +=,-=, *=, /=, &=,=, >≥, <≤, >>≥산술 연산 결과의 대입(’연산자’ + ‘=’의 축약 표현
삼항 연산자참 또는 거짓 ? x : y참일때 x, 거짓일때 y실행

산술 연산자(전위형, 후위형)

  • 전위형은 다른 명령들보다 먼저실행 되고 후위형은 가장 나중에 실행
int value3 = 3;
	int value4 = value3++;
	System.out.println(value3);  //4
	System.out.println(value4);  //4
	System.out.println();
	
	int value5 = 3;
	int value6 = ++value5;
	System.out.println(value5); //4
	System.out.println(value6); //3

비트 연산자

  • 비트 단위의 연산자
  • AND(&) 두값이 모두 1일때 만 1인 연산자
  • OR(|) 두값이 모두 0일때만 0
  • XOR(^) 두값이 같을때 0, 다르면 1
  • NOT(~) 0 →1 , 1→0 으로 반전
    • 값의 첫 번째 비트는 부호비트(0:양수, 1:음수)로, 숫자의 부호를 결정

    • 양수는 1을 기준을 값을읽는 반면, 음수는 0을 기준으로 값을 읽은 후 1을 더한 값이 음수의 절대값

      public static void main(String[] args) {
      int data = 13;
      System.out.println(Integer.toBinaryString(data)); // 10진수 값을 2진수,8진수,16진수로변환
      System.out.println(Integer.toOctalString(data));
      System.out.println(Integer.toHexString(data));
      System.out.println();
      System.out.println(Integer.parseInt("1101", 2)); // 2진수,8진수,16진수 값을 10진수로 변환
      System.out.println(Integer.parseInt("15", 8));
      System.out.println(Integer.parseInt("0D", 16));
      System.out.println();
      }

시프트 연산자

  • 비트의 위치를 좌우로 이동하는 연산으로, 산술 시프트(<<,>>)와 논리 시프트(>>>)가 있다.
  1. 산술 시프트
    1. 숫자의 부호비트는 유지하면서 왼쪽<< or 오른쪽>>으로 이동
    2. << 1bit 시프트당 X 2, >> 1bit 시프트당 / 2 부호 유지 , 둘다 빈칸 0으로 채움
  2. 논리 시프트
    1. 부호비트를 포함해 전체 비트를 오른쪽으로 이동, 빈칸은 0으로 채움

비교 연산자

  • 등호를 포함해 2개의 연산 부호가 연결됬을때 등호(=)는 항상 오른쪽에 위치
  • = : 오른쪽의 값을 왼쪽에 대입
  • == : 두값이 일치한지 아닌지
  • != : 두값이 다른지
  • 등가 비교시 스택 메모리의 값을 비교함
    • 기본자료형의 비교대상은 실제 데이터값
    • 참조 자료형의 등가 비교대상은 실제 데이터값이 위치한 번짓값

논리 연산자

  • 비트 연산자와 비슷
  • 피연산자로 불리언값만 올수 있다.
  • 논리 연산은 비트연산자로도 수행 가능 함
    • 쇼트서킷 : 연산 수행과정에서 결과가 이미 확정됐을 때 나머지 연산 과정을 생략하는 것
    • 논리 연산자 쇼트서킷 적용 / 비트연산자 미적용

대입 연산자

  • a = a+3
    1. a + 3 연산 수행
    2. 1의 연산 결과 값을 a에 대입
    3. 축약형태은 오른쪽 a 하나를 없앤 형태, 등호는 항상 오른쪽
      1. a += b
      2. a -= b
      3. a *= b

삼항 연산자

  • 구성 : (참 또는 거짓) ? 참일 때 연산 결과 : 거짓일 때 연산 결과
  • 값이 참일때 콜론(:)의 앞쪽, 거짓일 때 뒤쪽이 연산 결과가된다.
  • ex) int a = (true) ? 1 : 2;
    • true → 1 false →2
profile
백엔드 개발자

0개의 댓글