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

​

​

​

업데이트: