ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] 5. 데이터 처리(연산자, 선택 제어문, 반복 제어문)
    2020년도 1학기/객체지향언어 2020. 5. 9. 05:34

     

     

    연산자

     

    연산자(operator)는 C++ 프로그램 내에서 연산 동작을 수행하는 기호이다. 반대로 피연산다(operand)는 연산에 사용되는 데이터이다. 피연산자의 개수는 단항 연산자(unary operator), 이항 연산자(binary operator), 3항 연산자(ternary operator)가 있다.

     

     

     

     

     

     

    이 중 관계 연산자(relational operator)는 두 개의 피연산자를 비교하여 서로간의 크고, 작고, 같은 관계를 비교하여 결과를 참, 거짓으로 나타내는 연산자이다. 결과 값이 참이면 true(1), 거짓이면 false(0)으로 표현한다. 문자 사이의 관계는 ASCII 코드 값으로 비교한다.

     

     

    논리연산자(logic operator)은 AND, OR, NOT을 수행하여 연산 결과를 참, 거짓으로 나타내는 연산자이다. 피연산자가 0이면 거짓, 0이 아니면 참으로 취급한다. 결과 값은 참이면 true(1), 거짓이면 false(0)으로 표현된다.

     

     

     

     

     

    비트 처리 연산자

    C++ 언어는 2진수의 비트 조작을 할 수 있고, 따라서 하드웨어와 관련된 제어를 할 수 있다. 비트 처리 연산자는 정수형일 때만 사용 가능하다. 비트 처리 연산자에는 비트 처리 논리 연산자(logic bitwise operator)와 데이터의 비트를 이동시키는 시프트(shift) 연산자가 있다. 비트 처리 논리 연산자는 두 데이터의 비트끼리의 논리 연산을 수행한다.

     

     

     

     

     

    시프트 연산자는 비트를 좌우로 이동시키는데 사용되며 오른쪽 시프트(>>)와 왼쪽 시프트(<<)가 있다. 이동 연산자의 왼쪽에는 처리할 데이터를 기술하고 오른쪽에는 몇 비트 이동하는지 기술한다. 시프트 연산에는 산술적 시프트와 논리적 시프트가 있다.

     

    논리적 시프트는 단순히 각 비트를 좌측 혹은 우측으로 단순히 이동하는 것으로, 데이터가 unsigned로 선언되어 있을 때 논리적 시프트로 동작한다. 논리적 시프트에서는 시프트가 이루어져서 비어 있는 비트에는 0으로 채워진다.

     

     

     

     

    형 변환 연산자

    다음과 같은 경우에 자동으로 자료형 변환을 수행한다. 이런 경우를 묵시적 형 변환(implicit conversion)이라고 한다.

     

    -변수에 다른 자료형의 값을 대입하거나 함수로부터 전달받는 경우

    -서로 다른 자료형의 값을 가지는 수식을 연산하는 경우

    -함수의 인자로 전달하는 경우

     

    어떤 자료형의 값을 다른 자료형의 변수에 대입할 수 있다. 대입할 값은 대입되는 변수의 자료형으로 변환된다. 범위가 작은 자료형의 값을 큰 자료형의 변수에 대입하는 것은 아무런 문제가 없지만, 범위가 큰 자료형의 값을 작은 자료형의 변수에 대입할 때는 문제가 있을 수 있다.

     

     

     

     

    주소 연산자(address operator)와 간접 연산자(dereference operator)

    주소 연산자 : 변수 이름 앞에 &를 붙이면 변수의 주소가 된다. 이때 &는 주소 연산자(address operator)라고 한다. 포인터의 자료형과 포인터가 가리키는 변수의 자료형이 일치해야 한다.

     

    간접 연산자 : 포인터가 가리키는 기억 공간의 값을 알려면 포인터 이름 앞에 *를 붙여주면 된다. 이 때 *는 간접 연산자(dereference operator)라고 한다.

     

     

     

     

     

     

     

Designed by Tistory.