연산자 / java

aljongjong·2021년 8월 22일
0

학원 복습일지

목록 보기
6/84

항(operand): 연산에 사용되는 값
연산자(operator): 항을 이용하여 연산하는 기호

대입 연산자(assignment operator)(=)

  • 변수에 다른 변수나 값을 대입하는 연산자
  • 이항 연산자 중 우선 순위가 가장 낮은 연산자
  • 왼쪽 변수 = 오른쪽 변수(또는 식, 값)
  • ❤️‍🔥같다가 아니라 메모리공간에 저장된 라이트밸류값을 레프트밸류 메모리공간에 복사하는 것.(같다는 ‘ == ‘로 표현)
  • 리터럴, 변수, 식, 변수+리터럴, 변수+변수 등이 대입될 수 있다.

부호 연산자( -x, +x..)

  • 단항 연산자
  • 변수의 부호를 유지하거나 (+), 바꿈(-)
  • 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 함

산술 연산자(+ - * / %)

  • 사칙 연산자
  • 이항 연산자
  • / —> 나누고 몫을 구함
  • % —> 나누고 나머지를 구함

복합 대입 연산자(+=, -=, *=, /=, %=…)

  • 대입 연산자와 다른 연산자가 함께 쓰임
sum += sum; -> sum = sum + num;
sum -= sum; -> sum = sum - num;
sum *= sum; -> sum = sum * num;
sum /= sum; -> sum = sum / num;
sum %= sum; -> sum = sum % num;

증가 감소 연산자(++, --)

  • 단항 연산자
  • 변수의 값을 1더하거나 1 뺄 때 사용
  • 연산자가 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점과 결과가 달라짐
  • 문장(statement)의 끝(;)을 기준으로 연산 시점을 생각해야 함
int num = 0;
num++; -> num = 0 + 1;
num--; -> num = 0 - 1;

관계 연산자(>, <, >=, <=, ==, !=)

  • 이항 연산자
  • 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자라고도 함
  • 조건문, 반복문의 조건식으로 많이 사용 됨
// 관계 연산자 '!='는 같지 않을 때 true
int num1 = 1;
int num2 = 2;
boolean a = (num1 != num2); -> a = true

논리 연산자(&&, ||)

  • 1 —> true, 0 —> false
  • 논리 곱(&&) —> and 연산
  • 논리 합(||) —> or 연산

  • 논리 곱은 두 항의 결과가 모두 true일 때만 true

  • 논리 합은 두 항의 결과중 하나라도 true이면 true

조건 연산자

  • 삼항 연산자
  • 조건식의 결과가 true인 경우와 false인 경우에 따라 다른 결과가 수행됨
  • if문(조건문)을 간단히 표현할 때 사용할 수 있음
  • 조건식 ? 결과1 : 결과2; —> 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 선택 —> int num = (5 > 3) ? 10 : 20; —> 10

비트 연산자

  • 대입연산자와 다른 연산자가 함께 쓰임

  • 마스크: 특정 비트를 가리고 몇 개의 비트 값만 사용할 때

  • 비트 켜기: 특정 비트들 만을 1로 설정해서 사용하고 싶을 때
    ex) & 00001111 (하위 4비트 중 1인 비트만 꺼내기)

  • 비트 끄기: 특정 비트들 만을 0으로 설정해서 사용하고 싶을 때
    ex) | 11110000 (하위 4비트 중 0인 비트만 0으로 만들기)

  • 비트 토글: 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때

  • ‘~’ —> 비트의 반전(1의 보수) —> a = ~a;

  • ‘&’ —> 비트 단위 AND —> 1 & 1, 1반환 그 외는 0

  • ‘|’ —> 비트 단위 OR —> 0|0, 0반환 그 외는 1

  • ‘^’ --> 비트 단위 XOR —> 두개의 비트가 서로 다른 경우에 1을 반환

  • ‘<<‘ —> 왼쪽 shift —> a << 2, 변수 a를 2비트 만큼 왼쪽으로 이동

  • ‘>>’ —> 오른쪽 shift —> a >> 2, 변수 a를 2비트 만큼 오른쪽으로 이동

  • ‘>>>’ —> 오른쪽 shift —> >> 동일한 연산, 채워지는 비트가 부호와 상관없이 0임

0개의 댓글