수식과 연산자
title: “수식과 연산자” categories:
-
C
#수식과 연산자 : 네이버 블로그
수식이란 피연산자와 연산자의 조합이다.
연산자는 대입,산술,부호,증감,관계 등등이 있다.
%는 나눗셈 연산자. 짝수 홀수 구분 등 나눠지는 수를 구별할 때 자주 쓰인다.
증감 연산자
x=y++과 x=++y는 무슨 차이일까
일단 =은 오른쪽에서 왼쪽으로 대입한다. 하지만 식은 왼쪽에서 오른쪽으로 풀어가므로
x=y++은 y를 먼저 대입하고 +1을 하게 된다. 즉 y는 대입만 할 뿐 숫자가 증가하지 않는다.
x=++y는 +먼저 y에 더하고 그것을 x에 대입한다. 즉 y는 더해진 대입되므로 숫자가 증가한다.
++x와 y++차이를 알아 볼 수 있는 예제
int x=10,y=10;
printf("x=%d \n",x); //원래의 x값
printf("++x=%d \n",++x);
printf("x=%d \n\n",x); //++x후 x값
printf("y=%d \n\n",y); //원래의 y값
printf("y++=%d \n",y++);
printf("y=%d \n\n",y); //y++후 y값
관계 연산자
2 < x <5 가 아닌
(2 < x) && (x < 5)로 써야 한다.
논리 연산자
x&&y and 연산
x | y or 연산( | 은 shift누르고 \) |
!x not 연산
윤년 계산
윤년은 4로 나누어 떨어지지만 100으로 나누어 떨어지는 연도는 제외한다
단. 400으로 나누어 떨어지는 연도는 윤년에 포함된다.
윤년 계산에는 3개의 식이 필요하다.
4로 나누어 떨어지지만(and) 100으로는 나누어 떨어지지 않는다 그러나(or) 400으로는 나누어진다.
윤년을 1로 윤년이 아닌 년을 0으로 두면’
윤년%4 == 0 //윤년을 4로 나누는데 4의 배수면 나머지가 0이 되므로 0이 되면 참(1 )이 되게끔 식을 만든다
and
윤년%100 != 0 //위와 반대로 0이 나오면 0 다른 숫자가 나오면 1이 되게끔 한다
or
윤년%400 == 0 //400으로 나누어 떨어지면 윤년이다.
조건 연산자
구조도 쉽고 간결하다 ?뒤 참이면 :앞의 것을, 거짓이면 ; 뒤의 것을 계산한다
조건?참일경우:거짓일경우
예시로 3개 정수 중 가장 큰 값을 찾을 수 있다
int a,b,c,n1,n2;
printf("서로 다른 정수 3개를 입력하세요");
scanf("%d%d%d",a,b,c);
(a > b) ? (n1 = a) : (n1 = b);
(n1 > c) ? (n1 = n1) : (n1 = c);
(a > b) ? (n2 = b) : (n2 = a);
(n2 > c) ? (n2 = c) : (n2 = n2);
printf("가장 큰 수는 %d 가장 작은 수는 %d입니다", n1, n2);
=을 쓸때 오른쪽에 있는것을 왼쪽에 대입한다는 점을 잘 기억해야 한다
콤마 연산자
x++,y++;이 있을 시 x가 먼저 증가되고 y가 증가된다
비트 연산자
자주 쓰는 int 변수는 32비트로 구성된다
8비트 = 1바이트, 32비트 = 4바이트
& and
or |
^ xor
«왼쪽으로 이동
오른쪽으로 이동
~ not