연산자란 연산 대상이 되는 피연산자에 대한 연산을 수행하는 기호를 뜻한다.

C++에서 사용 가능한 연산자에는 산술 연산자, 관계 연산자, 논리 연산자, 증감 연산자, 대입 연산자, 그리고 비트 연산자가 있다.

 

산술 연산자

산술 연산자는 사칙연산의 연산자들과 나머지 연산자가 있다.

각 연산자의 정의는 다음과 같다.

유형 정의
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int a = 5;
    int b = 2;

    int sum = a + b; //더하기
    int sub = a - b; //빼기
    int mul = a * b; //곱하기
    int div = a / b; //나누기
    int rem = a % b; //나머지

    cout << "sum: " << sum << endl;
    cout << "sub: " << sub << endl;
    cout << "mul: " << mul << endl;
    cout << "div: " << div << endl;
    cout << "rem: " << rem << endl;
}

결과

 

sum: 7
sub: 3
mul: 10
div: 2
rem: 1

산술연산자가 연이어 사용되는 경우에는 아래와 같이 연산 우선순위를 적용한다.

1. 괄호 안의 연산자가 첫번째 우선순위를 가진다.

2. 곱셈, 나눗셈, 나머지 연산자가 그 다음 우선순위를 가진다.

3. 덧셈, 뺄셈 연산자가 그 다음 우선순위를 가진다.

4. 같은 우선순위의 연산자가 나열된 경우 좌측 연산자부터 먼저 처리한다.

 

관계 연산자

관계 연산자는 두 수를 비교하는 연산자이다.

주로 제어문에서 조건을 검사하기위해 많이 사용되며 true 혹은 false를 출력한다.

각 연산자의 정의는 다음과 같다.

 

유형 정의
== 같다
!= 다르다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int a = 5;
    int b = 2;
    
    bool same = a == b; //같다
    bool diff = a != b; //다르다
    bool big = a > b; //크다
    bool big_or_same = a >= b; //크거나 같다
    bool small = a < b; //작다
    bool small_or_same = a <= b; //작거나 같다

    cout << "same: " << boolalpha << same << endl;
    cout << "diff: " << boolalpha << diff << endl;
    cout << "big: " << boolalpha << big << endl;
    cout << "big_or_same: " << boolalpha << big_or_same << endl;
    cout << "small: " << boolalpha << small << endl;
    cout << "small_or_same: " << boolalpha << small_or_same << endl;
}

결과


same: false
diff: true
big: true
big_or_same: true
small: false
small_or_same: false

논리 연산자

논리 연산자는 And, Or, Not의 세가지 종류가 있다.

각 연산자의 정의는 다음과 같다.

유형 정의
&& 그리고 (AND)
|| 혹은 (OR)
! 아닐때 (NOT)

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    bool AND = true && false;
    bool OR = true || false;
    bool excl = !true;

    cout << "AND: " << boolalpha << AND << endl;
    cout << "OR: " << boolalpha << OR << endl;
    cout << "excl: " << boolalpha << excl << endl;
}

결과

 


AND: false
OR: true
excl: false

증감 연산자

증감 연산자는 변수의 값을 증가시키거나 감소시킬때 사용한다.

각 연산자의 정의는 다음과 같다.

유형 정의
++i 연산 전에 i값 1 증가
i++ 연산 후에 i값 1 증가
--i 연산 전에 i값 1 감소
i-- 연산 후에 i값 1 감소

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int i = 9;
    cout << "i++: " << i++ << endl; //해당 연산 후에 값 증가
    cout << "i: " << i << endl; //연산 이후에 값이 증가함.

    i = 9;
    cout << "++i: " << ++i << endl; //해당 연산 전에 값 증가됨.

    i = 9;
    cout << "i--: " << i-- << endl; //해당 연산 후에 값 감소
    cout << "i: " << i << endl; //연산 이후에 값이 감소함.

    i = 9;
    cout << "--i: " << --i << endl; //해당 연산 전에 값 감소됨.
}

결과

 


i++: 9
i: 10
++i: 10
i--: 9
i: 8
--i: 8

대입 연산자

대입 연산자는 동일한 변수가 연산자의 좌우에 모두 쓰이는 경우 간단하게 쓰기위해 사용하는 연산자를 말한다.

각 연산자의 정의는 다음과 같다.

유형 정의
+= i += j;  (이 식과 동일: i = i + j)
-= i -= j;  (이 식과 동일: i = i - j)
*= i *= j;  (이 식과 동일: i = i * j)
/= i /= j;  (이 식과 동일: i = i / j)
%= i %= j;  (이 식과 동일: i = i % j)

비트 단위 연산자

비트 연산자는 정수형 데이터의 비트를 직접 제어하는데 사용하는 연산자를 말한다..

각 연산자의 정의는 다음과 같다.

유형 정의 설명
| OR 대응 비트가 하나만 1이어도 1을 출력
^ XOR 대응 비트가 서로 다를 때 1을 출력
<< left shift 지정된 수만큼 비트들을 왼쪽으로 이동시킴
>> right shift 지정된 수만큼 비트들을 오른쪽으로 이동시킴
~ 1의 보수 0비트는 1로, 1비트는 0으로 변환

 

 

 

 

'소프트웨어 > C++' 카테고리의 다른 글

[C++] 객체지향 언어  (0) 2021.12.01
[C++] 객체지향의 개념  (0) 2021.12.01
[C++] 데이터 타입  (0) 2020.04.25

    사람은 자신의 삶을 살아가면서 보고 듣고 읽은 것을 통해 배워가고 지식 혹은 지혜를 정립해나아간다.

자신에 대한 정립 또한 마찬가진데, 생각보다 많은 사람들이 주변사람들이 자신에 대한 평가들을 바탕으로 자신이 어떤 사람인지에 대해 정립을 해나가고 있다.

 

나 또한 그랬었다. 비교로 인해 열등감도 가져봤고, 비교로 인해 우월감도 가져봤다. 주변사람들의 언행 하나하나에 신경써가면서 내가 뭔가 더 해야하지 않을까? 내가 아직 많이 부족한가? 라는 생각도 많이 했었다.

 

하지만 나 자신에 대한 믿음이 매우 중요하다는 사실을 알게되었다.

뭐든 배우면 되고 되고 도전하면 된다.

내가 뭐가 부족하건 누가 뭐라건 상관이 없는 것이다.

남이 결정하는 '나'는 중요하지 않고 내가 결정하는 '나'가 중요한 것이다.

 

그리고 그 결정이 나 자신을 만든다.

 

'나'는 생각보다 괜찮은 사람이다. 그리고 내가 원하는 모든 것을 이루어 갈 것이다.

또한 내가 '나'를 생각하듯 '남'을 생각하자. 세상엔 가치 없는 사람이란 없으니까.

 

내가 해준 칭찬 한마디가 '남'이 다시 한번 자신의 가치를 정립하는 계기가 될 수 있으니까.

'인생' 카테고리의 다른 글

고민  (0) 2025.01.07
인재의 기준  (0) 2021.10.26

C++에서 사용 가능한 데이터 타입은 정수형, 실수형, 문자형, 그리고 논리형이 있다.

각 데이터 타입은 상수 혹은 변수형태로 표현이 가능하다.

상수는 값이 변경되지 않는 데이터를 말하며 변수는 상황에 따라 변하는 데이터를 말한다.

그럼 기본적인 자료형의 종류를 알아보자

 

정수형

정수형 데이터타입은 크게 세가지로 이루어져있다.

short, int, long타입이다. 각 타입은 하나의 정수를 저장하기 위한 기억공간의 크기로 구분되는데, 통상 int 타입을 기준으로 short 타입은 int 타입의 반이, 그리고 int 타입은 long 타입의 반이 할당된 공간이 주어진다.

 

ex)

int a;

short b;

long c;

 

해당 타입들에는 타입 앞에 unsigned란 예약어를 붙일 수 있다.

unsigned는 말 그대로 부호가 붙지 않은 정수. 즉, 양수만을 저장하는 변수를 선언할 때 사용된다. 이는 각 변수별로 할당된 공간을 양수로써 최대로 활용하고자 함에 있다.

 

각 변수의 데이터 범위 정의는 다음과 같다.

 

유형 크기 데이터 범위
short 2
unsigned short 2
int 4
unsigned int 4
long 8
unsigned long 8

주의해야할 점은 변수를 정의하고 사용할 때는 그 변수에 저장될 값의 범위에 맞게 데이터 타입을 정해주어야한다.

 

실수형

실수형 데이터는 소수점을 가지고 있는 수치 데이터이다. 이 실수형은 두가지로 이루어진다.

float, double 타입이다. float형 데이터는 4바이트, double형 데이터는 8바이트의 공간이 할당된다.

 

각 변수의 데이터 범위 정의는 다음과 같다.

 

유형 크기 데이터 범위
float 4
double 8

 

문자, 문자열형

문자형 데이터는 영문자, 숫자, 특수 문자 등을 표현하는 데이터이다.

문자형 데이터 타입은 한쌍의 단일 따옴표를 이용하여 표기하고 문자열 데이터 타입은 이중 따옴표를 이용하여 표기한다.

유형 크기 데이터 범위
char 1
unsigned char 1
wchar_t 2

 

C++에서는 특수문자를 사용하여 출력 상태를 제어할 수 있다.

특수문자는 다음과 같다.

확장 문자
\n 줄을 바꾼다.
\t 수평 탭으로 일정 간격을 벌린다.
\b 백스페이스.
\r 같은 줄의 맨 앞으로 커서를 옮긴다.
\f 출력 용지를 한 장 넘긴다.
\a 경고음을 낸다.
\/ / 문자를 출력한다.
\' ' 문자를 출력한다.
\" " 문자를 출력한다.
\0 널(Null) 문자.

 

논리형

논리형 데이터 타입은 참, 거짓을 표현하는 데이터이다.

유형 크기 데이터 범위
bool 1

 

 

'소프트웨어 > C++' 카테고리의 다른 글

[C++] 객체지향 언어  (0) 2021.12.01
[C++] 객체지향의 개념  (0) 2021.12.01
[C++] 연산자  (0) 2020.04.29

체형분석 및 헬스케어 업계의 요구사항에 맞게 (주)엠지솔루션스에서는 동적분석 기술을 하나하나 개발해나가고 있습니다.

기존 업계에서 동영상만으로 동적분석을 진행하던 방법에서 벗어나 Motion Capture 기술을 응용 및 발전시켜 3D 골격점을 파악하고 기록하여 더욱 정밀하고 깊은 분석 수행이 가능합니다.

ORRBEC SDK +Segmentation 을 활용한 동적분석시 골격점 정확도 향상으로 타 기기대비 더욱 정확한 측정 또한 가능합니다.

앞으로 저는 이 분야에서 체형분석에 대한 새로운 기준을 제시하며 앞선 기술력을 바탕으로 발전적이고 과학적인 시스템을 만들어가도록 하겠습니다.

+ Recent posts