본문 바로가기
C언어

C언어_연산자

by 히예네 2023. 1. 23.
728x90
반응형

연산자

(나머지구하기 엄청 많이씀 % ex)5%3=2)

 

1. *+-/는 산술연산자 (이항연산자)

단항연산자 마이너스랑 모양이 비슷함 -4 , -(-4) 양수가 된다. 부호연산자라고부름

 

2. 비교 연산자 부등호(순서 바꾸면 안됨)

< , > , < =크거나 같다 , > = 작거나 같다 , == 같다, ! = 같지 않다

참거짓으로 보여줌

#include <stdio.h>

void main() { printf("%d",5==5); //true=1 false=0 대입은 ==이다

 

3. 논리 연산자

&& : AND 연산자 (회로도를 분석하기 위해서 만듬) 0=off, 0제외 나머지=on

A   and   B  X
0   0 0
0 && 1 0
1   0 0
1   1 1

20<age<40

잘못된: 같이 하면 안된다. 논리가 안맞음. 사람처럼 생각함 다 참이나온다.

논리연산자는 비교연산자 문제점 때문에 만들어짐 .둘은 동시에 쓴다. 2진수 연산법

20,30대만 입장가능

if( age>20 && age<40 )

if(age<20 || age>40)

printf(”입장불가”)

printf("%d \n", 1&&1);//논리연산자는 비교연산자 문제점 때문에 만들어짐. 2진수 연산법

|| :  or 연산자 둘중에 하나만 해당해도 1임

A   and B   
0   0 0
0 || 1 1
1   0 1
1   1 1

 

! : NOT연산자 단항연산자

if(!(age>20)); 이거 아니냐?하고 물어볼때 근데 왜씀????????????????

조건의 반대상황을 나타냄 이거 은근히 잘쓴다는데??

int num1 = 2, num2 = 3, num3 = 5; int result1, result2, result3;

result1 = (num1 > 0) && (num2 < 10); result2 = (num2 <= 2) || (num3 > 5); result3 = !num3;

printf("resul3에 저장된 값 %d", result3);

0이외는 참이다. num3=5이므로 참이다

그러나 !로 부정하였으므로 거짓(0)이다.

 

 

 

4. 비트 연산자 (시스템 프로그래머 하드웨어 쪽에서는 많이씀 . )

& : AND 연산자

| or 연산자

~ : NOT연산자 단항연산자

^ : Ex or 연산자

<< , >> 시프트연산자

 

5. 증가감소 연산자

++, - - 단항 얘들은 1씩만 증가된다.

++ a 전위형 : 먼저 더하고 나중에 a를 더한다.

a ++ 후위형 : a를 먼저 더하고 나중에 ++한다.

전위형과 후위형의 계산은 결과가 다르므로 다양하게 배워야함.

 

#include <stdio.h>

void main() {  int a= 8; 
printf("%d\n", a >> 2);//자리를 옮기는 명령문

int a = 10; //printf("%d \n", a);

a = a + 1;//카피해서 a를 가져와라 
printf("%d \n", a);//제일 많이 틀리는 명령문. 11이 안나온다. 
//산술연산한다해서 a에 1을 더해지지 않는다. 대입 연산자를 써서 다시 a를 정해줘야한다.

//a++; //printf("%d \n", a); //하나플러스

//잘못된 케이스 : 본인이 계산함
728x90
반응형

'C언어' 카테고리의 다른 글

C언어_배열  (0) 2023.01.24
C언어_함수  (0) 2023.01.23
C언어_제어문  (0) 2023.01.23
C언어_상수  (0) 2023.01.23
C언어_변수  (0) 2023.01.23