프로그래밍 공부
작성일
2023. 2. 28. 15:53
작성자
WDmil
728x90

연산자는 대입 연산자와 산술 연산자, 부호 연산자, 복합대입 연산자, 증감 연산자, 비교연산자 가 있다.

대입 연산자 : = 으로 우측에있는 데이터를 좌측에 넣어주는 역활을 한다.

산술 연산자 : +, -, *, /, % 로 좌측과 우측의 연산을 시도하는 연산자 이다.

부호 연산자 : 숫자의 음수 양수를 나타내는 +, -를 표시해주는 부호를 말한다.

복합 대입 연산자 : 연산기호를 줄여주는 역활을 한다. 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 문을 넣어서 데이터를 입력 할 수 있다. 그러나 윈도우 보안정책이 업데이트 되면서 오류가 발생하는데 오류코드를 없애기 위해서는,

_CRT_SECURE_NO_WARNINGS

위와 같은 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 억 사이의 숫자를 감당한다. 데이터의 기본 숫자를 이해하면 된다.


실수형, 데이터의 실수를 감당한다. 부동소수점방식과 고정소수점 방식이 있는데, 실수는 컴퓨터의 설계상 오차가 발생할 수 밖에 없기 때문에 데이터의 오차값을 감안하여 설계를 해야한다.

for문으로 1000번 더했으나, 소수점 밑이 남는것을 볼 수 있다.


논리형, 데이터의 True와 False 의 참과 거짓을 담당한다. 데이터는 1byte로 이루어져 있으며, 데이터의 값의 범위가 1과 0으로 두개만 나타낸다. 이러한 데이터의 범위로 참과 거짓을 효율적으로 나타낼 수 있다.

bool의 데이터 범위는 1과 0으로 볼 수 있다.

 

 

우리는 여기서 오버플로우와 언더플로우를 조심해야 하는데, 언더플로우는 데이터가 너무 내려가서 표시할 수 없는 데이터 값 까지 내려가게 되어 데이터의 표현방식을 나타낼 수 없어 가장 최고치로 다시 돌아가는것 을 이야기 하고,

오버플로우 는 데이터값의 위치가 더 올라갈 수 없어 그 위인 가장 아래값이 나타나게 된다.

 

즉, 여기서는 우리는 원 하나의 테두리를 생각해볼 수 있다. 모든 데이터의 위치는 원처럼 이어지게 되고, 가장 처음의 바로 밑은 가장 높은, 가장 높은 값의 바로 위는 가장 낮은 것을 생각하면 될 것 이다. 이러한 오버플로우를 경험해볼 수 있는 간단한 코드를 소개한다.

728x90