-
연산자
[학습내용] [학습목표] ▪ 다양한 연산자
▪ 기타 연산자▪ C언어에서 사용되는 다양한 연산자를 알고 활용할 수 있다.
▪ 형변환 연산자와 연산자 우선순위를 설명할 수 있다.다양한 연산자
1. 산술연산자
• 산술연산에 사용되는 연산자
연산자 연산 예 결과 + 더하기 3 + 2 5 - 빼기 3 - 2 1 * 곱하기 3 * 2 6 / 나누기 3 / 2 1.5 % 나머지 3 % 2 1 int a=5, b=3; printf(“%d + %d = %d\n”, a, b, a+b); // 5 + 3 = 8 printf(“%d - %d = %d\n”, a, b, a-b); // 5 – 3 = 2 printf(“%d * %d = %d\n”, a, b, a*b); // 5 * 3 = 15 printf(“%d / %d = %d\n”, a, b, a/b); // 5 / 3 = 1 printf(“%d % %d = %d\n”, a, b, a%b); // 5 % 3 = 2
2. 관계연산자
• 크기 비교 연산에 사용되는 연산자
• 비교 결과 참(true)이면1, 거짓(false)이면 0
연산자 연산 예 결과 > 큰가? 5 > 3, ‘b’ > ’a‘ 1 < 작은가? 5 < 3, ‘a’ < ‘B’ 0 >= 크거나 같은가? 5 >= 3 1 <= 작거나 같은가? 5 <= 3 0 != 다른가? 5 != 3 1 == 같은가? 5 == 3 0 int a=9, b=2; printf(“%d > %d의결과값은 %d입니다.\n”, a, b, a>b); // 9 > 2의 결과값은 1입니다. printf(“6 == 6의 결과값은 %d”, 6 == 6); // 6 == 6의 결과값은 1
3. 논리연산자
• AND OR NOT 연산에 사용되는 연산자
연산자 연산 && AND || OR ! NOT
4. 증감연산자
• 값을 1만큼 증가 또는 감소시키는 연산자
• 증감 연산자는 반드시 변수에만 사용
• 연산자 위치에 따라 연산 순서가 다름
분류 예 풀이 전위형 a = ++cnt cnt = cnt + 1;
a = cnt ;a = --cnt cnt = cnt - 1;
a = cnt ;후위형 a = cnt++ a = cnt ;
cnt = cnt + 1;a = cnt-- a = cnt ;
cnt = cnt - 1;int a=5, b = ++a; printf("a=%d \n", a++); // a=5 printf("a = %d b = %d", a, b); // a=7 b=7 printf("\n a = %d b = %d", a++, ++b); // a=7 b=8
기타 연산자
1. 비트연산자
• 비트단위의연산에사용되는연산자
비트 논리 연산자
연산자 연산 & AND | OR ~ NOT ^ XOR 이동(Shift)연산자
• 이동 후 빈자리는 0으로 채워짐
• 비트 왼쪽 이동 : 왼쪽 피연산자 * 2N
• 비트 오른쪽 이동 : 왼쪽 피연산자 / 2N
연산자 연산 << 왼쪽으로 이동 >> 오른쪽으로 이동
2. 대입연산자
왼쪽 변수에 오른쪽 값을 저장
왼쪽은 변수만 사용가능
복합대입 연산자를 사용할 수 있음
3. 조건연산자
• 삼항 연산자
• 수식C ? 수식T : 수식F
4. 형변환연산자
묵시적 형변환(Implicit Type Conversion
- 컴파일러에 의해 자동으로 수행하는 형변환
명시적 형변환(Explicit Type Conversion)
- 지정한 데이터 타입으로 임시적으로 수행하는 형변환
(int) 25.347 → 25
(double) 25 → 25.0
a=5; b=2; printf(“%d / %d = %d”, a, b, a/b); printf(“%d / %d = %f”, a, b, (double)a/b);
5. 연산자 우선순위
우선순위 연산자 결합방향 설명 1 ( ) [ ] - > . → 1차연산자 2 ++ -- + 부호 – 부호 ~ ! * & cast ← 단항연산자 3 * / % → 산술연산자 4 + - → 산술연산자 5 << >> → 이동연산자 6 < <= > >= → 관계연산자 7 == != → 관계연산자 8 & → 비트연산자 9 ^ → 비트연산자 10 | → 비트연산자 11 && → 논리연산자 12 || → 논리연산자 13 ?: → 삼항연산자 14 = += -= *= /= %= &= |= ^= <<= >>= ← 대입연산자
평가하기
Q1. 7 << 2 의 연산결과는 무엇인가?
① 24
② 14
③ 28
④ 32왼쪽으로 쉬프트 연산은 2N을 곱한 결과입니다.
Q2. 7을 2로 나눈 결과를 실수 형태로 얻고자 할 때, 적절하지 않은 문장은 무엇인가?
① 7/2.0
② 7/2
③ (double) 7 /2
④ 7 / (double) 2정수와 정수의 연산결과는 정수입니다.
Q3. 10 / 2 와 10%2의 연산결과 짝으로 알맞은 것은 무엇인가?
① 5.0 - 0
② 5 - 5
③ 5 - 0
④ 5.0 - 0.0
연산 결과 정수로 몫과 나머지가 출력됩니다.
학습정리
1. 다양한 연산자
• 산술 연산자로 +, -, *, /, %가 있음
• 크기 비교에 사용되는 관계연산자로 <, <, <=, >=, !=, ==가 있음
• 논리 연산자로 && , ||, ! 연산자를 사용함
• 증감 연산자에는 연산자의 위치에 따라서 전위형과 후위형이 있음
2. 기타 연산자
• 비트간의 연산으로 비트연산자가 있음
• 임시적인 형변환을 위하여 형변환 연산자를 사용할 수 있음
• 연산자의 우선 순위에 따라 연산이 이루어짐
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 1 - 반복문 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 조건문 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 변수와 데이터형 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 프로그램 기본 구조 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 컴퓨터 프로그래밍 이해 (0) 2021.07.25 댓글