- 수식 expression : 연산자, 피연산자의 조합
- 기호를 연산자 opertor, 연산의 대상이 되는 값을 operand라고 함
- 산술연산자 : +, - , *, / 와 같은 사직연산을 제공하는 연산자
- / 연산자 : 피연산자가 둘 다 정수 일 경우 > 값은 정수로만 나타냄
- % 연산자 : 피연산가 둘 다 정수인 경우에만 사용 가능
- ' % ' 기호를 출력하고 싶다면 %% 두개 입력
- 피연산자의 형 변환 규칙
- 피연산자 중에 double 형이 있으면, 나머지 피연산자를 double형으로 변환
- 피연산자 중에 float 형이 있으면, 나머지 피연산자(정수형)를 float형으로 변환
- 피연산자 둘다 정수형이면 우선 승격시킴 > 유효범위가 작은 형을 큰 형으로 승격시키는 것
(short형 * int형이면 => int형 * ing형으로 승격) - 피연산자의 signed/unsigned 여부가 일치하면 작은 형을 큰 형으로 변환
- 피연산자의 signed/unsigned 여부가 일치하지 않고 unsigned >= signed 이면 unsigned형으로 변환
- 피연산자의 signed/unsigned 여부가 일치하지 않고 unsigned <= signed 이면 signed형으로 변환
*** 정수와 실수의 혼합 연산시 형 변환은 자동 처리 됨 = 자동 형 변환 = 암시적인 형 변환이라고 함
- 증감 연산자 : 변수의 값을 증가, 감소 시키는 단항 연산자
- 대입 연산자 : 좌변에 있는 변수에 우변의 값을 대입하는 연산자
형식 : 변수명 = 값;
today = 20220217;
- 복합 대입 연산자 : 산술, 비트 연산자를 합쳐서 사용한 연산자
* 복합 대입 연산자를 사용 할 때는 연산자 우선순위에 주의
- 관계 연산자 : 두 수의 값을 비교하기 위한 연산자
- 참 true 는 1, 거짓 false 는 0
* 두 값이 같은지 비교할 때는 ' = '이 아닌 ' == ' 를 사용
** ' 10 < x < 20 ' 같은 조건식은 X => ' 10 < x && x < 20 ' 같은 식으로 사용
- 논리 연산자 : 참과 거짓을 이용한 논리 연산 > && (AND) , || (OR), ! (NOT)
* 관계 연산자와 같이 사용할 때, 논리 연산자는 우선 순위가 낮아짐 (관계 연산자 먼저 수행)
** && 논리 연산자의 조건식이 여러개 일때, 먼저 나온 조건식이 거짓이면 다음 식은 검사 하지 않음
*** || 논리 연산자의 조건식이 여러개 일때, 먼저 나온 조건식이 참이면 다음 식은 검사 하지 않음
- 비트 연산자 : 비트 단위로 수행되는 연산자
- 비트 논리 연산자, 비트 이동 연산자가 있음
- 비트 논리 연산자 : &, | , ^, ~ 이 있음
- 데이터 형이 같지 않으면 형 변환으로 같은 형으로 만든 다음, 논리 연산 수행
- 비트마스크 bitmask = 마스크 mask : 특정 비트를 조작하기 위한 목적의 데이터
- x의 값 중, y의 비트가 1인 부분의 값만 유지, 나머지는 0
(뒤에서 부터 0번)
- x의 값 중, y의 비트가 0인 부분의 값만 유지, y의 비트가 1이면 모두 1
- x의 값 중에 y의 비트가 1인 부분은 토글 되고 y의 비트가 0인 부분은 유지
(토글 toggle : 값을 반대로 전환 => 위의 식은 x와 y의 비트를 OR 연산하고 y의 비트가 1인 값만 반대 값으로 전환)
- 비트 이동 연산자 : 좌변에 있는 피연산자의 비트들을 우변의 피연산자가 지정하는 만큼 양쪽으로 이동(shift) 시킴
- 비트 왼쪽 이동 << 연산자
- 왼쪽으로 이동
- 왼쪽으로 밀려난 비트는 사라지고 오른쪽 빈 자리에 0을 채움
- n 비트 왼쪽 이동은 2ⁿ을 곱하는 것과 같음
- 비트 왼쪽 이동 << 연산자
- 비트 오른쪽 이동 >> 연산자
- 오른쪽으로 이동
- 오른쪽으로 밀려난 비트는 사라지고 왼쪽 빈 자리에 0을 채움
- n 비트 오른쪽 이동은 2ⁿ을 곱하는 것과 같음
- 조건 연산자 : 피연산자가 3개인 삼항 연산자
형식 : 수식1 ? 수식2 : 수식3
a > 0 ? a : -a
=> a가 0보다 크면 수식2를 수행, 작으면 수식 3을 수행
=> 수식1이 true이면 수식2 수행, false이면 수식3 수행
- 콤마 연산자 : 왼쪽 부터 계산해서 마지막 오른쪽의 수식 값이 연산의 결과가 됨, 여러 수식을 연결할 때 사용
- 암시적인 형 변환 = 자동 형 변환 : 자연스럽게 수행되는 형 변환 > 혼합 연산 할 때 일어남
- 명시적인 형 변환 : 지정한 형식으로 형 변환
형식 : (데이터형) 수식
(double) 0
- 연산자의 우선순위
- 단항 > 산술 > 관계 > 논리 > 대입 > 콤마
- 변수 = 수식의 형태인 경우 항상 수식의 값 먼저 계산
- 연산자의 결합 규칙
- 대부분의 연산자는 좌 > 우 방향으로 겹합, 단항 과 대입 연산자는 우 > 좌 방향으로 결합
'C(Core C Programming)' 카테고리의 다른 글
Core C Programming 4장 Programming assignment + 13번 추가설명 (0) | 2022.08.10 |
---|---|
Core C Programming 4장 Programming assignment (0) | 2022.03.02 |
Core C Programming 3장 Programming assignment (0) | 2022.02.16 |
3. 데이터형과 변수 (0) | 2022.02.16 |
Core C Programming 2장 Programming assignment (0) | 2022.02.15 |