연산자는 대입 연산자와 산술 연산자, 부호 연산자, 복합대입 연산자, 증감 연산자, 비교연산자 가 있다.
대입 연산자 : = 으로 우측에있는 데이터를 좌측에 넣어주는 역활을 한다.
산술 연산자 : +, -, *, /, % 로 좌측과 우측의 연산을 시도하는 연산자 이다.
부호 연산자 : 숫자의 음수 양수를 나타내는 +, -를 표시해주는 부호를 말한다.
복합 대입 연산자 : 연산기호를 줄여주는 역활을 한다. a = a+b를 쓸때 a+=b로 나타낼 수 있다. 두개의 결과는 같게 나오게 된다.
증감 연산자 : 1씩 더 늘려나가는것을 더 쉽게 쓰게 만들기위해 연산자를 간략하게 나타내는 것 이다.
비교 연산자 : 각각피 연산자의 크기를 비교해서 bool값으로 반환한다. 1은 참 0은 거짓을 나타낸다.
전체 코드의 계산공식을 연산을 보자.
위와 같이 나타낼 수 있을것이다.
여기서 증감연산자가 잘 이해가 가지 않을 수 있는데
코드는 언제나 좌측부터 우측으로 읽는다는걸 생각하고 계산해보자.
a = ++b ; 를 보면 a에 넣는다. ++ 1을 더한 b를 이라고 생각하면 되고,
a = b++ 은 b를 a에 넣고 b에 1을 더한다 라고 생각하면 된다. 즉, a에 1을 더한 b를 넣느냐 , b를 넣고 1을 더하냐 차이일 것 이다.
각 값의 출력은 이렇게 나타나게 된다. 논리 연산자는 여기서 사용하여 나타내지 않았다. 비교연산자의 두개의 변수를 넣어야한다.
입력 변수를 여기서 넣지 말고 윈도우 프롬프트에서 대입을 시켜보도록 하자.
scanf 문을 넣어서 데이터를 입력 할 수 있다. 그러나 윈도우 보안정책이 업데이트 되면서 오류가 발생하는데 오류코드를 없애기 위해서는,
위와 같은 scanf 오류코드 무시 문을 삽입하면 된다.
10을 넣으면 10이 나오는걸 알 수 있다.
위 코드를 사용해서 간단한 예제 코드를 작성해보자.
위와 같은 코드 작성법을 사용하여 예시를 만들어낼 수 있을 것 이다.
여기서 pragma region 은 코드를 범위로 묶는것 이다. Attack이라는 이름으로 endregion 까지 묶어서 보기 편하게 정리할 수 있다.
다른 예시를 작성해보자. 이번에는 조건 연산자를 알아보자. 조건 연산자는 데이터의 if문과 같은 역할로 동작하게 되는데,.
이와 같이 grabRange >= distance ? catchenemy = true : catchenemy = false; 를 작성하여 참인지 거짓인지를 알아볼 수 있다.
자료형 = DataType을 이야기한다.
데이터 타입은 bit, byte 등을 확인할 수 있는데, 여기는 데이터 단위의 크기에 따른 표현 방법을 이야기 한다.
bit : 가장 작은 데이터 단위 이다. 2진수로 표현할 수 있는 가장 작은 데이터의 단위 이다.
byte : 1byte == 8bit
각 자료형은
char, int, longlong, float, double, long double 가 있다. 각각 살펴보도록 하자.
char : 하나의 문자를 표현할 때 사용한다. 1byte의 저장공간을 차지하게 된다.
즉, '0'은 문자를 표현하고, 65는 아스키코드의 65번째 문자를 출력하라 라고 말할 수 있을것이다.
정수형, 데이터의 정수를 감당한다.int 는 약 -21억에서 21 억 사이의 숫자를 감당한다. 데이터의 기본 숫자를 이해하면 된다.
실수형, 데이터의 실수를 감당한다. 부동소수점방식과 고정소수점 방식이 있는데, 실수는 컴퓨터의 설계상 오차가 발생할 수 밖에 없기 때문에 데이터의 오차값을 감안하여 설계를 해야한다.
논리형, 데이터의 True와 False 의 참과 거짓을 담당한다. 데이터는 1byte로 이루어져 있으며, 데이터의 값의 범위가 1과 0으로 두개만 나타낸다. 이러한 데이터의 범위로 참과 거짓을 효율적으로 나타낼 수 있다.
우리는 여기서 오버플로우와 언더플로우를 조심해야 하는데, 언더플로우는 데이터가 너무 내려가서 표시할 수 없는 데이터 값 까지 내려가게 되어 데이터의 표현방식을 나타낼 수 없어 가장 최고치로 다시 돌아가는것 을 이야기 하고,
오버플로우 는 데이터값의 위치가 더 올라갈 수 없어 그 위인 가장 아래값이 나타나게 된다.
즉, 여기서는 우리는 원 하나의 테두리를 생각해볼 수 있다. 모든 데이터의 위치는 원처럼 이어지게 되고, 가장 처음의 바로 밑은 가장 높은, 가장 높은 값의 바로 위는 가장 낮은 것을 생각하면 될 것 이다. 이러한 오버플로우를 경험해볼 수 있는 간단한 코드를 소개한다.
'서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D' 카테고리의 다른 글
6일차 13.Array, 14.Array_sort, 15. 2D_array (0) | 2023.03.09 |
---|---|
5일차 11,12.function 13. Array (0) | 2023.03.08 |
4일차 08.RandomNumber(무작위 난수), 09.while, 10.for (0) | 2023.03.03 |
3일차 05. type_casting, 06.if, 07.switch (0) | 2023.03.02 |
1일차 OT [ 소개부터 공부 과정, C 기초 도입부 ] (0) | 2023.02.27 |