연산자

박정훈·2021년 1월 1일
0

java

목록 보기
3/15

연산자(Operator)

  • 연산자는 변수의 값을 변경하거나 대입하는데 사용된다.
  • 자바에서는 연산자에 따라 연산 대상이 될 수 있는 데이터 타입이 정해져 있다.
  • 오버플로(overflow) 또는 언더플로(underflow)등 범위를 벗어나는 연산들에 대해서는 연산 결과에 불필요한 값이 저장된다.
  • 0으로 나눌 경우는 오류가 발생한다.
  • 연산에 사용하는 값을 항(Operand)라고 한다.

단항 연산자(Unary Operator)

  • 단항 연산자는 피연산자가 하나인 연산자를 말한다.
  • 단항 연산자의 종류
    1. 변수의 앞이나 뒤에 붙어서 변수 값을 하나 증가시키거나, 감소시키는 증감연산자(++, --)
    2. 양수와 음수를 나타내는 부호 연산자(+, -)
    3. 비트의 값을 바꿔주는 비트 반전 연산자(~)
    4. 논리대수의 값을 반전시켜주는 논리 반전 연산자(!)
    5. 데이터 타입을 바꿔주는 캐스트연산자((type))

이항 연산자(Binary Operator)

  • 이항 연산자는 피연산자(Operand)가 두 개인 연산자를 의미한다.
  • 연산자가 int형(4Byte)보다 작은 크기의 데이터 타입인 경우에 boolean형을 제외하고 모두 int형으로 자동 형 변환되어 연산을 수행한다.
  • 이항 연산자의 종류
    1. 산술 연산자(+, -, *, /, %)
      • 나머지 연산은 결과가 항상 정수이다.
    2. 비교 연산자(<, <=, >, >=, ==, !=)
      • 비교 연산자의 결과 값은 크기 값을 비교하여 조건을 만족하면 true 그렇지 않으면 false를 반환한다.
      • 만약 비교되는 숫자의 데이터 타입이 다를 경우 기본적으로 크기가 큰 데이터 타입에 맞추어 비교 연산을 실행한다.
    3. 비트 연산자(&, |, ^)
      • 비트 연산자는 두 수를 각각 2진수로 변환하여 두 수의 각 비트 연산을 수행한다.
      • &(비트곱): 두 비트가 1일 때 1, 나머지는 0
      • |(비트합): 두 비트 중 하나 이상이 1이면 1, 두 비트 모두 0이면 0
      • ^(xor 배타적 논리합): 두 비트가 다르면 1, 같으면 0
    4. 비트 이동 연산자(<<, >>)
      • 왼쪽 항의 값을 2진수로 변환하여 오른쪽 항의 값만큼 비트를 왼쪽(<<), 오른쪽(>>)으로 이동시키는 연산을 수행한다.
        int a = 192;
        00000000 00000000 00000000 11000000
        a << 3;
        00000000 00000000 00000110 00000000 // 1536 <= 192 * 2^3
        
      • 암호화작업처럼 임의의 숫자를 만들거나, 어떤 변수의 특정 비트를 꺼내보는(마스킹: masking)경우에 사용한다.
    5. 논리 연산자(&, |, &&, ||)
      • &(and): 연산을 수행하여 양쪽 항이 모두 true일 때만 true를 반환한다.
      • |(or): 연산을 수행하여 양쪽 항 중 한쪽만 true를 만족해도 true를 반환한다.
      • &&(논리 곱): 만일 왼쪽 항이 false일 경우에는 오른쪽 항을 수행하지 않고 무조건 false를 반환한다.
      • ||(논리 합): 만일 왼쪽 항이 true일 경우에는 오른쪽 항을 수행하지 않고 무조건 true를 반환한다.
      • &&, ||을 short circuit operator라고 부른다.
      • 논리 곱 연산과 논리 합 연산을 할 때 두 항을 모두 실행하지 않더라도 결과 값을 알 수 있는 경우에, 나머지 항은 실행되지 않는 것을 단락 회로 평가(Short Circuit Evaluation, SCE)라 한다.
    6. 대입 연산자(Assignment Operator)
      • 대입 연산자의 기본형은 '='이고, 추가로 발전된 형태의 대입 연산자들이 있다. (+=, -=, *=, /=, %=)

삼항 연산자

  • 피 연산자가 3개인 연산자를 말한다.
  • (조건식 ? 연산식1 : 연산식2)
    조건식의 결과값이 참이면 연산식1, 거짓이면 연산식2를 실행하라.
    조건식에는 boolean형 조건식이 들어간다.

연산자 우선순위

소괄호 > 단항 > 이항 > 삼항 > 대입
단항연산자: ++, --, (캐스팅)

출처: Do it 자바프로그래밍 입문

profile
정팔입니다.

0개의 댓글