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 | X |
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
반응형