[C언어] 연산자와 수식

0

C언어

목록 보기
1/7

내가볼려고 올리는 정리


사칙연산

int main()
{
  printf("%d", 2 + 6); // 8
  printf("%d", 6 - 2); // 4
  printf("%d", 2 * 6); // 12
  printf("%d", 6 / 2); // 3
  printf("%d", 7 % 2); // 1
  
  return 0;
}

증감 연산자

  • 증감 연산자는 변수에 담겨 있는 값을 증감하거나 감소시키는 연산자로, 전위와 후위로 나뉘어 집니다.
  • 전위의 경우에는 먼저 값을 변화시킨 후에 연산자가 쓰인 줄의 코드를 실행시키고, 후위의 경우에는 연산자가 쓰인 줄의 코드를 실행한 후 값을 변화시킵니다.
#include <stdio.h>

int main()
{
  int i = 0;
  
  printf("%d", ++i); // 1
  
  i = 0; // 0 으로 초기화
  
  printf("%d", i++); // 0
  printf("%d", i); // 1
	
  return 0;
}

관계 연산자

  • 관계 연산자는 일반적으로 숫자를 비교하는 데 쓰입니다. 큰지, 같거나큰지, 작은지, 같거나 작은지, 같은지, 다른지 등의 비교를 합니다.
#include <stdio.h>

int main()
{
	int number = 5;

	printf("number 는 5와 같습니까? %d\n", number == 5);  // 같으므로 1(참)
	printf("number 는 4와 같습니까? %d\n", number == 4);  // 같지 않으므로 0(거짓)

	printf("number 는 5와 다릅니까? %d\n", number != 5); // 같으므로 0(거짓)
	printf("number 는 4와 다릅니까? %d\n", number != 4); // 같지 않으므로 1(참)

	printf("number 가 4보다 큽니까? %d\n", 4 < number);    // 크므로 1(참)
	printf("number 가 5보다 큽니까? %d\n", 5 < number);    // 크지 않으므로 0(거짓)
	printf("number 가 10보다 큽니까? %d\n", 10 < number);   // 크지 않으므로 0(거짓)

	printf("number 가 10보다 작습니까? %d\n", number < 10); // 작으므로 1(참)
	printf("number 가 5보다 작습니까? %d\n", number < 5);   // 작지 않으므로 0(거짓)
	printf("number 가 4보다 작습니까? %d\n", number < 4);  // 작지 않으므로 0(거짓)

	printf("number 가 5보다 크거나 같습니까? %d\n", 5 <= number); // 크거나 같으므로 1(참)
	printf("number 가 5보다 작거나 같습니까? %d\n", number <= 5); // 작거나 같으므로 1(참)

	return 0;
}

논리 연산자

  • 논리 연산자는 참(1)과 거짓(0)에 대한 연산자임. 참과 거짓을 연산하여 둘 다 참일 경우에만 통과 시킬지, 둘 중 하나만이라도 참이면 통과시킬지 등을 연산함
#include <stdio.h>

int main()
{
  int number = 5;

  printf("AND(논리곱) : %d\n", 3 < number && number < 10); 
  // 둘 다 참이므로 참(1)을 출력
  printf("AND(논리곱) : %d\n", 3 < number && 10 < number); 
  // 둘 중 하나만 참이므로 거짓(0)을 출력
  
  printf("OR(논리합) : %d\n", number == 5 || number == 4);
  // 둘 중 하나라도 참이므로 참(1)을 출력
  printf("OR(논리합) : %d\n", number == 6 || number == 7); 
  // 둘 다 거짓이므로 거짓(0)을 출력
  
  return 0;
}

복합 대입 연산자

  • 복합 대입 연산자는 연산과 동시에 변수에 대입시키는 연산자
#include <stdio.h>

int main()
{
  int a = 5; // 5 로 초기화하여 시작

  a += 5;
  printf("%d\n", a); // 10 출력
  
  a -= 3;
  printf("%d\n", a); // 7 출력
  
  a *= 5;
  printf("%d\n", a); // 35 출력
  
  a /= 7;
  printf("%d\n", a); // 5 출력
  
  a %= 4;
  printf("%d\n", a); // 나머지 1 출력
  
  return 0;
}

비트연산자/비트이동연산자

  • 비트 연산자는 2진수 값을 이용하여 연산을 하는 연산자입니다.
비트연산자설명
&대응되는 비트가 모두 1이면 1을 반환(AND)
\ 대응되는 비트중에서 하나라도 1이면 1(OR)
^대응되는 비트가 서로 다르면 1(XOR)
~비트가 1이면 0으로, 0이면 1로 (NOT)
<<지정한 수 만큼 비트들을 모두 왼쪽으로 이동시킴.(LEFT SHIFT)
>>부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동(RIGHT SHIFT)
#include <stdio.h>

int main()
{
  unsigned char a = 5;  // 0000 0101
	unsigned char b = 10;  // 0000 1010
	unsigned char c;
	
  c = a & b;
  printf("%d\n", c); 
  //둘다 1인부분만 1이기때문에 결과값은 0이다.
  
  c = a | b;
  printf("%d\n", c); 
  // OR 연산을 수행하기 때문에 하나라도 1이면 1.
  // 따라서 0000 1111 이기때문에 15가 결과값으로 나오게됨.
  
  c = a ^ b;
  printf("%d\n", c); 
  // 0000 1111
  //15
  
  c = ~a;
  printf("%d\n", c); 
  //1111 1010
  //250
  
  c = a << 2;
  printf("%d\n", c); 
  //0001 0100
  //20
  
  c = a >> 2;
  printf("%d\n", c); 
  // 0000 0001
  //1

  return 0;
}

한 눈에 끝내는 c언어 기초 를 공부하고 작성한 글입니다.

1개의 댓글

comment-user-thumbnail
2022년 4월 29일

좋아요

답글 달기