변수와 연산자, 데이터 처리
1. 변수와 상수
- 변수: 변하는 수
- 상수: 변하지 않는 수
1-1. 데이터형
데이터형 | 크기 | 설명 | 값 |
char | 1byte | 단일 문자 | -2^7 ~ 2^7-1 |
int | 4byte | 정수형 숫자 | -2^15 ~ 2^15-1 |
float | 4byte | 실수 | 부호(1), 지수(8), 가수(23) |
double | 8byte | 실수 | 부호(1), 지수(11), 가수(52) |
1-2. signed / unsigned
- signed : 최상위 비트를 부호 비트로 사용, 최상위 비트를 제외하고는 보수로 뒤집어줌
- unsigned : 전영역 정수로 사용
2. 연산자
- 대입연산자 : 변수에 값을 대입하기 위한 연산자
ex) = (좌항에 변수 입력) - 산술연산자 : 수치 계산을 위한 연산자
ex) +, -, *, /, %, … - 비교연산자 : 비교를 위한 연산자
ex) >, ==, < - 논리연산자 : 참/거짓 판별하는 연산자
ex) &&, ||, ! - 증감연산자 : 증가/감소 연산자
ex) ++, -- - 비트연산자 : 비트 단위 연산자
ex) &, |, ^, <<, >>, ~
2-1. 연산자 우선순위
순위 | 연산자 | 결합성 |
1 | (), [], ->/. (구조체) | 좌->우 |
2 | !, -, ++, --, *(포인터), &, sizeof | 우->좌 |
3 | *, /, % | 좌->우 |
4 | +, - | 좌->우 |
5 | <<, >> | 좌->우 |
6 | <, <=, >, >= | 좌->우 |
7 | ==, != | 좌->우 |
8 | &(비트연산자) | 좌->우 |
9 | ~ | 좌->우 |
10 | | | 좌->우 |
11 | && | 좌->우 |
12 | || | 좌->우 |
13 | ?: | 좌->우 |
14 | , | 우->좌 |
3. Define 문: 매크로 정의: 상수로도 함수로도 이용 가능
- 상수 : #define MAX_AGE 250
= const int MAX_AGE 250; - 함수 : #define add(a,b) (a+b)
= int add(int a, int b) {
return (a+b); } - define문은 precompile 단계에서 코드를 컴파일러가 해석하기 좋게 바꾸어준다. (대입 개념)
4. 데이터 처리
- 컴퓨터는 메모리에 쓰여진 0과 1의 bit 나열로만 받아들임
- 데이터 타입을 통한 추상화
4-1. 숫자 다루기
- 1의 보수 : 비트 모두 반전. +0, -0이 모두 존재
- 2의 보수 : 비트 반전 +1. 하나의 0만 존재