Operator, Operation   연산자, 연산

(2019-11-21)

피 연산자, 대입 연산, 대입 연산자, 산술 연산자, 비교 연산, 비교 연산자, 논리 연산자, 단항 연산자, 삼항 연산자, 비트 연산자, 시프트 연산

1. [전산]  연산 (演算) 이란?컴퓨터(프로그램)에서, 데이터에 대한 연산/조작은, 
     - 통상의 사칙연산 이외에, 
     - 값(value)에 대응되는 메모리 셀 간 이동,비교,교환,할당 뿐 만 아니라,
     - 논리 판단, 자료형 판단, 문자열 처리, 이미지 편집 등이 추가적으로 요구됨 
 
  ㅇ 주요 연산 종류
     - 산술 연산 (가감승제,나머지,거듭제곱 등)
     - 비교 연산 (같음/다름,대/소의 구분)
     - 논리 연산 (AND,OR,NOT,XOR)
     - 교환 연산 (Swap)
     - 비트 연산 (비트 단위 이동,논리 연산)
     - 시프트 연산 (비트/바이트/워드 단위 이동) 등


2. [전산]  프로그램 연산자 (演算子) 이란?프로그램 내 데이터 조작에 쓸 수 있는 연산자
     - 특정 작업을 수행 지시하는 기호

  ㅇ 연산자 평가
     - 연산자표현식 단위로 그 안에서 평가(evaluation)되어짐

  ㅇ [참고] 프로그래밍 언어연산자 例) 
     - C 연산자, 자바스크립트 연산자, MATLAB 연산자 등 참조


3. [전산]  프로그램 연산자 주요 종류

  ㅇ 대입 연산자 (Assignment Operator)
     -  (대입) =

     * `=` 기호는 수학에서의 동치가 아니라, 대입문에 쓰이는 연산자 임

  ㅇ 산술 연산자 (Arithmetic Operator)
     -  (덧셈) +, (뺄셈) -, (곱셈) *, (나눗셈) /, (나머지) %, (거듭제곱) ** 또는 ^

     *  산술 연산자는 항상 엄격하게 `연산 우선순위`에 따라 수행됨

  ㅇ 단항 연산자 (Unitary Operator)
     -  (양수) +, (음수) -, (증가) ++, (감소) --

     * 例)  `= ++i`(전위 증가 단항 연산자), `= i++`(후위 증가 단항 연산자) 비교
        .  `= ++i` : 먼저 평가하고(먼저 i에 1을 더함), 그 다음에 대입
        .  `= i++` : 먼저 대입하고, 그 다음에 평가(후에 i에 1을 더함)
     * 例) i++ 및 i-- 결과에 따른 i 값은 같게 됨(i 자체는 변화 없음)

  ㅇ 삼항 연산자 (Ternary Operator) 또는 조건 연산자
     -  [조건식] ? [참일 경우 반환값] : [거짓일 경우 반환값] 

  ㅇ 비교 연산자 (Comparing Operator) 또는 관계 연산자 (Relational Operator)
     -  (greater than) >,  (greater than or equal to)  >=
     -  (less than) <,  (less than or equal to) <=
     -  (equal to) ==,  (not equal to) ~= 또는 !=

  ㅇ 논리 연산자 (Logical Operator) 
     -  & 또는 &&  (논리곱/AND)
     -  | 또는 ||  (논리합/OR)
     -  ! 또는 ~  (논리부정/NOT)
     -  ^  (배타논리합,XOR)

  ※ (비교 연산자, 논리 연산자)의 특징
     - 비교 연산자,논리 연산자를 함께 사용하여 만든 조건식들을 결합시키면,
        . 더욱 복잡한 조건식을 정의 가능
     - 비교 연산자,논리 연산자는 프로그램 제어 구조(선택 구조,반복 구조) 구현에 쓰임
        . 이들 연산자는 비교 대상 값의 자료형과 무관하게, 
        . 그 결과를 무조건 Boolean 자료형으로 반환

  ㅇ 비트 연산자 (Bit Operator)
     - 비트 단위 논리 연산자 
        . ~ (비트 단위 부정), & (비트 단위 논리곱), | (비트 단위 논리합), ^ (비트 단위 XOR)
     - 비트 간의 시프트 연산자
        . << (좌로 1 비트 이동), >> (우로 1 비트 이동)

  ㅇ 그룹 연산자 (Group Operator) : ( )
     - 계산 순서를 명시적으로 우선 지정

     * 연산의 결합 순위를 명시적으로 지정 가능

  ㅇ 주소 연산자 (Address Operator) : *, &  (C 언어에 한 함)


4. [전산]  프로그램 연산자의 우선순위와 결합순서

  ※ [참고] ☞ C 연산자 등 참조
     - 어떤 표현식 내 복수의 연산자들이 포함되어 있을 때,
     - 어떤 순서로 처리할 것인가를 결정하게 하는 것

  ㅇ 우선 순위
     - 연산자별로 매겨진 순위(등급)

  ㅇ 결합 순서
     - 여러 결합된 연산자들이 동일 우선순위일 때,
     - 어떤 방향으로 연산순서화할 것을 정하는 규칙


[프로그래밍 기타일반] 1. 프로그래밍 기타 용어 2. 래퍼 함수 3. 핸들 4. 플러그인 5. 연산자 6. 코드 리펙토링

 
        최근수정     요약목록     참고문헌