본문 바로가기

IT STUDY/Language

[기초 C] 연산자 C로 표현하기

반응형

 

 

C에서 관계,증감,논리 등등 수많은 연산자들이 있습니다.
C에서 연산자를 어떻게 사용하는지 고고싱!!

 

 

 

 

 

 

들어가기에 앞서... Tip


 

1. 헤더의 종류

헤더

설명

함수

studio.h

표준 입출력 라이브러리 함수 정의

printf, scanf, fopen,getc 등

limits.h

정수형의 범위를 나타내는 상수들을 정의

CHAR_BIT, INT_MIN, INT_MAX 등

 

 

 

 

 

 

 

 

C를 이용한 사각형, 삼각형, 원 면적 구하기


/************************************
		연산자 공부
				2011. 9. 30
					kimbosung
************************************/
  
	 
				  
/************************************
		연산자 공부
				2011. 9. 30
					kimbosung
************************************/
  
	 
				  
#include <stdio.h>
#include <limits.h>

main ()
{
	int num1,num2;
	int sum,a,b;
	int max;
	//printf("두 정수를 입력하세요");
	//scanf("%d %d",&num1,&num2);

	num1=1;
	num2=0;
	
	sum=num1+num2;

	printf("두정수의 합은?? ==%d\n",sum);
	printf("두정수의 차는?? ==%d\n",num1-num2);
	printf("두정수의 곱은?? ==%d\n",num1*num2);
	if(num2==0) 
		printf("Error 0으로 나누었어요\n");
	else
		printf("두정수의 나누기는?? ==%d\n",num1/num2);

	num2=3;
	if(num2==0) 
		printf("Error 0으로 나누었어요\n");
	else
		printf("두정수의 나머지는?? ==%d\n",num1%num2);

	//관계 연산자 (판단할때 사용)
	printf("*****현재 num1=%d, num2=%d*****\n",num1,num2);
	
	if(num1>num2)printf("크다 ==%d\n",num1>num2);
	if(num1>=num2)printf("크거나 같다 ==%d\n",num1>=num2);
	if(num1<num2)printf("작다 ==%d\n",num1<num2);
	if(num1<=num2)printf("작거나 같다 ==%d\n",num1<=num2);
	if(num1==num2)printf("같다 ==%d\n",num1==num2);
	if(num1!=num2)printf("같지않다 ==%d\n",num1!=num2);
	//  0:False //  0이아닌수:True
	if(-1)printf("True\n");
	

	//증감 연산자
	printf("전위형%d\n",++num2);	//증가후 출력
	printf("후위형%d\n",num2++);	//출력후 증가
	printf("%d\n",num2);
	
	//논리 연산자 (not,or,and)
	printf("NOT %d\n",!num2);
	printf("OR %d\n",num1||num2);
	printf("AND %d\n",num1&&num2);

	//삼항 연산자
	a=3;b=2;
	a ? printf("True\n"): printf("False\n");
	b ? printf("True\n"): printf("False\n");
	(a>b) ? printf("True\n"):printf("False\n");
	(a<b) ? printf("True\n"):printf("False\n");
	(a%2) ? printf("True\n"):printf("False\n");// 홀 : 짝
	(b%2) ? printf("True\n"):printf("False\n");
	(b%2==0) ? printf("True\n"):printf("False\n");
	
	//비트 논리 연산자 
	// ~ :보수, &:비트(and), |:비트(or), ^:XOR
	a=6; b=5;
	
	printf("비트OR %d\n",a|b);
	printf("비트AND %d\n",a&b);
	printf("비트XOR %d\n",a^b);
	a=0;
	printf("보수 %d %u\n",~a,~a);
	
	//비트 이동, 쉬프트
	a=8;b=2;
	printf("비트 좌측 이동 %d\n",a<<b);
	printf("비트 우측 이동 %d\n",a>>b);
	printf("비트 우측 이동 %d\n",3<<2);
	
	//signed int 의 최대값을 구하시오.

	a=1;b=31;
	printf("%u\n",~(a<<b));
	
	//부호 연산자
	a=1;
	printf("부호 연산자 %d \n",-a);
	//캐스트 연산자
	a=1,b=3;
	printf("부호 연산자 %f \n",(double)a/(double)b);
	
	a=3,b=5;

	//if(a>b) max=a;
	//else max=b;
	max= (a>b) ? a:b;
	printf("Max는 %d\n",max);//삼항 연산자로 큰값 찾기 

	return 0;
}

 

 

 

 

[실행 결과]

 

 

 

 

 

 

 

반응형