51
4. 연연연연 연연

4. 연산자의 이해

Embed Size (px)

DESCRIPTION

4. 연산자의 이해. 산술 연산자. 논리 연산자. 1. 3. 이 장에서 다룰 내용. 관계 연산자. 2. 비트 연산자. 4. 연산자 우선순위. 5. 01_ 산술 연산자. 기본적인 연산자. 01 #include 02 03 int main() 04 { 05 int a, b = 5 , c = 3; 06 07 a = b + c; 08 printf(" %d + %d = %d \n", b, c, a );09 10 a = b - c; - PowerPoint PPT Presentation

Citation preview

Page 1: 4.  연산자의 이해

4. 연산자의 이해

Page 2: 4.  연산자의 이해

이 장에서 다룰 내용

산술 연산자1.

관계 연산자2.

논리 연산자3.

비트 연산자4.

연산자 우선순위5.

Page 3: 4.  연산자의 이해

01_ 산술 연산자

기본적인 연산자

산술 연산자 설명 사용 예 설명

= 대입 연산자 a = 3 정수 3 을 a 에 대입

+ 더하기 a = 5 + 3 5 와 3 을 더한 값을 a 에 대입

- 빼기 a = 5 – 3 5 에서 3 을 뺀 값을 a 에 대입

* 곱하기 a = 5 * 3 5 와 3 을 곱한 값을 a 에 대입

/ 나누기 a = 5 / 3 5 를 3 으로 나눈 값을 a 에 대입

% 나머지값 a = 5 % 3 5 를 3 으로 나눈 뒤 나머지 값을 a 에 대입

Page 4: 4.  연산자의 이해

[ 기본예제 4-1] 산술 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a, b = 5 , c = 3;0607 a = b + c;08 printf(" %d + %d = %d \n", b, c, a );0910 a = b - c;11 printf(" %d - %d = %d \n", b, c, a );1213 a = b * c;14 printf(" %d * %d = %d \n", b, c, a );1516 a = b / c;17 printf(" %d / %d = %d \n", b, c, a );

더하기

빼기

곱하기

나누기

Page 5: 4.  연산자의 이해

[ 기본예제 4-1] 산술 연산자 사용 예

1819 a = b % c;20 printf(" %d %% %d = %d \n", b, c, a );21 }

나머지

Page 6: 4.  연산자의 이해

01_ 산술 연산자

연산자 우선순위 괄호 > 곱셈 , 나눗셈 > 덧셈 , 뺄셈 연산자가 모두 동일한 경우에는 왼쪽에서 오른쪽으로 계산 진행 (→)

강제 형변환 프로그래머에 의해서 형이 변환되는 것 변환하려는 변수 또는 상수 앞에 ‘ ( 형이름 )’을 붙임 캐스트 (cast) 연산자 : 기존의 데이터형을 변환하는 연산자

Page 7: 4.  연산자의 이해

[ 응용예제 4-2] 우선순위와 강제 형변환 예

01 #include <stdio.h>0203 int main()04 {05 int a = 2 , b = 3 , c = 4;06 int result1, mok, namugi;07 float result2;0809 result1 = a + b - c;10 printf(" %d + %d - %d = %d \n", a, b, c, result1 );1112 result1 = a + b * c;13 printf(" %d + %d * %d = %d \n", a, b, c, result1 );1415 result2 = a * b / (float) c;

정수형 변수 선언

더하기와 빼기

실수형 변수 선언

더하기와 곱하기

강제 형변환

Page 8: 4.  연산자의 이해

[ 응용예제 4-2] 우선순위와 강제 형변환 예

16 printf(" %d * %d / %d = %f \n", a, b, c, result2);1718 mok = [ ① ] 19 printf(" %d / %d 의 몫은 %d \n", c, b, mok );2021 namugi =[ ② ]22 printf(" %d / %d 의 나머지는 %d \n", c, b, namugi );23 }

c / b;

c % b;

몫 구하기

나머지 구하기

Page 9: 4.  연산자의 이해

01_ 산술 연산자

간단한 연산자 우선순위 9 행 : + 와 - 연산자 사용 시 우선 순위 우선순위 동일함

12 행 : + 와 * 연산자 사용 시 우선 순위 * 이 + 보다 우선순위 높음

어떤 것을 먼저 계산하든지 결과는 동일

곱셈 먼저 계산

Page 10: 4.  연산자의 이해

01_ 산술 연산자

강제 형변환 수행 시 (15 행 )

Page 11: 4.  연산자의 이해

01_ 산술 연산자

강제 형변환을 하지 않은 경우

Page 12: 4.  연산자의 이해

01_ 산술 연산자

대입 연산자와 증감 연산자 대입 연산자 : =, +=, -=, *=, /=, %= 증감 연산자 : ++, --

대입 연산자 설명 사용 예 설명

+= 대입 연산자 a += 3 a = a +3 과 동일

-= 대입 연산자 a -= 3 a = a -3 과 동일

*= 대입 연산자 a *= 3 a = a * 3 과 동일

/= 대입 연산자 a /= 3 a = a /3 과 동일

%= 대입 연산자 a %= 3 a = a %3 과 동일

++ 증가 연산자 a++ 또는 ++a a +=1 또는 a = a + 1 과 동일

-- 감소 연산자 a– 또는 --a a -=1 또는 a = a - 1 과 동일

Page 13: 4.  연산자의 이해

[ 기본예제 4-3] 대입연산자와 증감연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a = 10;0607 a++;08 printf ( " a ++ ==> %d \n", a);0910 a--;11 printf ( " a -- ==> %d \n", a);1213 a += 5;14 printf ( " a += 5 ==> %d \n", a);1516 a -= 5;

a = a + 1

a = a - 1

a = a + 5

a = a - 5

Page 14: 4.  연산자의 이해

[ 기본예제 4-3] 대입연산자와 증감연산자 사용 예

17 printf ( " a -= 5 ==> %d \n", a);1819 a *= 5;20 printf ( " a *= 5 ==> %d \n", a);2122 a /= 5;23 printf ( " a /= 5 ==> %d \n", a);2425 a %= 5;26 printf ( " a %%= 5 ==> %d \n", a);27 }

a = a * 5

a = a / 5

a = a % 5

Page 15: 4.  연산자의 이해

[ 응용예제 4-4] 증감 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a = 10, b;0607 b = a++;08 printf ( " %d \n", b);0910 [ ① ] 11 printf ( " %d \n", b);12 }

b = a 를 수행한 후 b = a + 1 수행

b = ++a;

a = a + 1 를 수행한 후 b = a 수행

Page 16: 4.  연산자의 이해

01_ 산술 연산자

a++ 와 ++a 의 차이 7 행 , 10 행

Page 17: 4.  연산자의 이해

02_ 관계 연산자

관계 연산자의 기본 개념 비교 연산자 : 어떤 것이 큰지 , 작은지 , 같은지 비교 결과는 참 (1, true), 거짓 (0, false) 주로 조건식에 사용 , 단독으로는 쓰이지 않음

관계 연산자 종류

관계연산자 의미 설명

== 같다 두 값이 동일하면 참

> 크다 왼쪽 값이 크면 참

< 작다 오른쪽 값이 크면 참

>= 크거나 같다 왼쪽 값이 크거나 같으면 참

<= 작거나 같다 왼쪽 값이 작거나 같으면 참

!= 같지 않다 두 값이 다르면 참

a < b =참 : 1

거짓 : 0

Page 18: 4.  연산자의 이해

[ 기본예제 4-5] 관계 연산자 사용 예

01 #include <stdio.h>

02

03 int main()

04 {

05 int a = 100 , b = 200;

06

07 printf(" %d == %d 는 %d 이다 .\n", a, b, a==b);

08 printf(" %d > %d 는 %d 이다 .\n", a, b, a>b);

09 printf(" %d < %d 는 %d 이다 .\n", a, b, a<b);

10 printf(" %d >= %d 는 %d 이다 .\n", a, b, a>=b);

11 printf(" %d <= %d 는 %d 이다 .\n", a, b, a<=b);

12 printf(" %d != %d 는 %d 이다 .\n", a, b, a!=b);

13 printf(" %d = %d 는 %d 이다 .\n", a, b, a=b);

14 }

같다

크다

작다

크거나 같다

작거나 같다

같지 않다

대입 (?)

Page 19: 4.  연산자의 이해

02_ 관계 연산자

대입 연산자의 작동 13 행 : 의도와 다르게 작동

• ‘==’ 연산자 대신 ‘ =’ 연산자를 사용한 결과• == : 값이 같은지 체크하는 연산자• = : 오른쪽의 값을 왼쪽에 대입하는 연산자

Page 20: 4.  연산자의 이해

03_ 논리 연산자

논리 연산자의 기본 개념 여러 조건을 복합하여 사용 &&( 그리고 ), ||( 또는 ), !( 부정 )

연산자의 종류와 예

논리 연산자 의미 설명 사용 예

&& ~ 이고 그리고 (AND) 둘다 참이어야 함 (a > 100) && (a < 200)

||~

이거나 또는 (OR) 둘 중 하나만 참이어도 참 (a == 100) || (a==200)

!~

아니다 부정 (NOT)참이면 거짓 , 거짓이면

참 !(a < 100)

참이 되려면 두 조건이 모두 참이어야 함

Page 21: 4.  연산자의 이해

[ 기본예제 4-6] 논리 연산자 사용 예 ①

01 #include <stdio.h>0203 int main()04 {05 int a = 99;0607 printf(" AND 연산 : %d \n", (a >= 100) && (a <=

200) );08 printf(" OR 연산 : %d \n", (a >= 100) || (a <= 200)

);09 printf(" NOT 연산 : %d \n", !(a==100) );10 }

그리고 (AND)

또는 (OR)

부정 (NOT)

Page 22: 4.  연산자의 이해

[ 응용예제 4-7] 논리 연산자 사용 예 ②

01 #include <stdio.h>0203 int main()04 {05 int a = 100, b = -200;0607 printf(" 상수의 AND 연산 : %d \n", a && b );08 printf(" 상수의 OR 연산 : %d \n", [ ① ]);09 printf(" 상수의 NOT 연산 : %d \n", [②]);10 }

a || b!a

그리고 (AND)

또는 (OR)

부정 (NOT)

Page 23: 4.  연산자의 이해

04_ 비트 연산자

비트 연산자 정수나 문자 등을 2 진수로 변환한 후 각 비트끼리 연산 수행

비트 연산자의 종류와 예비트연산자 의미 설명

& 논리곱 (AND) 둘 다 1 이면 1

| 논리합 (OR) 둘 중 하나만 1 이면 1

^ 배타적 논리합 (XOR) 둘이 같으면 0, 둘이 다르면 1

~ 비트 부정 1 은 0 으로 0 은 1 로

<< 비트 이동 ( 왼쪽 ) 비트를 왼쪽으로 시프트 (Shift) 시킴

>> 비트 이동 ( 오른쪽 ) 비트를 오른쪽으로 시프트 (Shift) 시킴

Page 24: 4.  연산자의 이해

04_ 비트 연산자

비트 논리곱 (&) 연산 10 진수를 2 진수로 변환한 후 각 비트에 AND 연산 수행

결과 : 2 진수로는 00102 , 10 진수로는 2 두 수의 자릿수가 다를 때는 빈 자리에 0 을 채운 후 연산 진행

A B A & B

0 0 0

0 1 0

1 0 0

1 1 1

Page 25: 4.  연산자의 이해

[ 기본예제 4-8] 비트 논리곱 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 printf(" 10 & 7 = %d \n", 10 & 7 );06 printf(" 123 & 456 = %d \n", 123 & 456 );07 printf(" 0xFFFF & 0000 = %d \n ", 0xFFFF & 0000 );08 }

10 & 7 수행

123 & 456 수행FFFF & 0000 수행

Page 26: 4.  연산자의 이해

04_ 비트 연산자

비트 논리합 (|) 연산 10 진수를 2 진수로 변환한 후 각 비트에 OR 연산 수행

결과 : 2 진수로는 11112 , 10 진수로는 15

A B A | B

0 0 0

0 1 1

1 0 1

1 1 1

Page 27: 4.  연산자의 이해

[ 기본예제 4-9] 비트 논리합 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 printf(" 10 | 7 = %d \n", 10 | 7 );06 printf(" 123 | 456 = %d \n", 123 | 456 );07 printf(" 0xFFFF | 0000 = %d \n ", 0xFFFF | 0000 );08 }

10 | 7 수행

123 | 456 수행FFFF | 0000 수행

Page 28: 4.  연산자의 이해

04_ 비트 연산자

비트 배타적 논리합 (^) 연산 두 값이 다르면 참 (1), 같으면 거짓 (0)

결과 : 2 진수로는 11012 , 10 진수로는 13

A B A ^ B

0 0 0

0 1 1

1 0 1

1 1 0

Page 29: 4.  연산자의 이해

[ 기본예제 4-10] 비트 배타적 논리합 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 printf(" 10 ^ 7 = %d \n", 10 ^ 7 );06 printf(" 123 ^ 456 = %d \n", 123 ^ 456 );07 printf(" 0xFFFF ^ 0000 = %d \n ", 0xFFFF ^

0000 );08 }

10 ^ 7 수행

123 ^ 456 수행

16 진수 FFFF ^ 0000 수행

Page 30: 4.  연산자의 이해

[ 응용예제 4-11] 비트 연산에 마스크를 사용한 예

01 #include <stdio.h>0203 int main()04 {05 char a = 'A', b, c;06 char mask = 0x0F;0708 printf(" %X & %X = %X \n", a, mask, a & mask);09 printf(" %X | %X = %X \n", a, mask, a | mask);1011 mask = 'a' - 'A';1213 b = [ ① ]14 printf(" %c ^ %d = %c \n", a, mask , b);15 a = [ ② ]16 printf(" %c ^ %d = %c \n", b, mask , a);17 }

a ^ mask;

마스크 값을 설정

‘A’ & 0xFF 수행

b ^ mask;

‘A’ | 0xFF 수행

Page 31: 4.  연산자의 이해

04_ 비트 연산자

마스크 (mask) 를 사용한 비트 연산 6 행

• 마스크 값 선언 : 16 진수 0x0F16

8 행 : 마스크를 사용한 비트 논리곱 결과

Page 32: 4.  연산자의 이해

04_ 비트 연산자

9 행 : 마스크를 사용한 비트 논리합 결과

11 행 : 마스크 값 선언 13 행 , 15 행 : 마스크를 사용하여 ‘ a’, ‘A’의 비트 배타적 논리합 수행

Page 33: 4.  연산자의 이해

04_ 비트 연산자

비트 부정 연산자 (~) 두 수에 대한 연산이 아니라 비트 하나의 값을 반대로 만듦 1 의 보수 0 1 로 , 1 0 으로 해당 값의 음수 (-) 값을 찾을 때 사용

2 의 보수 ( 음수 )

1 의 보수 ( 각 비트의 값을 반전시킨 값 )= + 1

Page 34: 4.  연산자의 이해

[ 기본예제 4-12] 비트 부정 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a = 12345;0607 printf(" %d \n", ~a + 1);08 }

2 의 보수 구하기

Page 35: 4.  연산자의 이해

04_ 비트 연산자

왼쪽 시프트 연산자 (<<) 나열된 비트를 왼쪽으로 이동시키는 연산자 시프트할 때마다 2n(21, 22, 23…) 을 곱한 효과

2610 의 왼쪽 시프트 연산 예

• 0000 11012 로 변환한 후 비트 이동

Page 36: 4.  연산자의 이해

[ 기본예제 4-13] 왼쪽 시프트 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a = 10;06 printf ("%d 를 왼쪽 1 회 시프트하면 %d 이다 .\n", a,

a<<1);07 printf ("%d 를 왼쪽 2 회 시프트하면 %d 이다 .\n", a,

a<<2);08 printf ("%d 를 왼쪽 3 회 시프트하면 %d 이다 .\n", a,

a<<3);09 }

왼쪽 시프트시킬 때마다 결과 출력

Page 37: 4.  연산자의 이해

04_ 비트 연산자

오른쪽 시프트 연산자 (>>) 나열된 비트를 오른쪽으로 이동시키는 연산자 시프트할 때마다 2n(21, 22, 23…) 으로 나눈 효과

2610 의 오른쪽 시프트 연산 예

Page 38: 4.  연산자의 이해

[ 기본예제 4-14] 오른쪽 시프트 연산자 사용 예

01 #include <stdio.h>0203 int main()04 {05 int a = 10;06 printf ("%d 를 오른쪽 1 회 시프트하면 %d 이다 .\n",

a, a>>1);07 printf ("%d 를 오른쪽 2 회 시프트하면 %d 이다 .\n",

a, a>>2);08 printf ("%d 를 오른쪽 3 회 시프트하면 %d 이다 .\n",

a, a>>3);09 printf ("%d 를 오른쪽 4 회 시프트하면 %d 이다 .\n",

a, a>>4);10 }

오른쪽 시프트시킬 때마다 결과 출력

Page 39: 4.  연산자의 이해

[ 응용예제 4-11] 비트 연산에 마스크를 사용한 예

01 #include <stdio.h>0203 int main()04 {05 int a = 100, result;0607 int i;0809 for (i = 1 ; i <= 5 ; i ++)10 {11 [ ① ]12 printf ("%d << %d = %d\n", a, i, result);13 }1415 for (i = 1 ; i <= 5 ; i ++)16 {17 [ ② ]18 printf ("%d >> %d = %d\n", a, i, result);19 }20 }

result = a << i;

왼쪽 시프트 연산을 5 회 반복하여 출력

오른쪽 시프트 연산을 5 회 반복하여 출력

result = a >> i;

Page 40: 4.  연산자의 이해

05_ 연산자 우선순위

우선순위가 적용되는 연산자 목록

우선순위 연산자 설명 진행방향

1 ( ) [ ] . -> 1 차 연산자

2 + = ++ -- ~ ! * & sizeof (type) 단항 연산자

3 * / % 산술 연산자

4 + - 산술 연산자

5 << >> 비트이동 연산자

6 < <= > >= 비교 연산자

7 == != 동등 연산자

8 & 비트 연산자

9 ^ 비트 연산자

10 | 비트 연산자

11 && 논리 연산자

12 || 논리 연산자

13 ?: 삼항 연산자

14= += -= *= /= %= &= ^= |= <<=

>>=대입 연산자

15 , 콤마 연산자

Page 41: 4.  연산자의 이해

[ 예제모음 _07] 입력된 두 실수의 산술 연산

실행결과

예제설명

① 숫자 실수를 입력받고 두 수의 다양한 연산을 출력하는 프로그램이다 .• 나머지를 구하는 식에서는 강제 형변환을 사용한다 .

Page 42: 4.  연산자의 이해

예제모음 _07 소스

01 #include <stdio.h>0203 int main()04 {05 float a, b;06 float result;0708 printf(" 첫번째 계산할 값을 입력하세요 ==> ");09 scanf("%f", &a);10 printf(" 두번째 계산할 값을 입력하세요 ==> ");11 scanf("%f", &b);1213 result = a + b;14 printf(" %5.2f + %5.2f = %5.2f \n", a, b, result);15 result = a - b;16 printf(" %5.2f - %5.2f = %5.2f \n", a, b , result);

실수 변수 선언

키보드로 실수를 입력받음

키보드로 실수를 입력받음

실수 덧셈

실수 뺄셈

Page 43: 4.  연산자의 이해

예제모음 _07 소스

17 result = a * b;18 printf(" %5.2f * %5.2f = %5.2f \n", a, b, result);19 result = a / b;20 printf(" %5.2f / %5.2f = %5.2f \n", a, b, result);21 result = (int)a % (int)b;22 printf(" %d %% %d = %d \n", (int)a, (int)b,

(int)result);23 }

실수 곱셈

실수 나눗셈

나머지 연산을 위해 강제 형변환

Page 44: 4.  연산자의 이해

[ 예제모음 _08] 동전 교환 프로그램

실행결과

예제설명

① 입력된 액수만큼 500 원 , 100 원 , 50 원 , 10 원짜리 동전으로 교환해주는 프로그램이다 .• 동전의 총 개수는 최소화한다 .• 고액의 동전을 먼저 바꿔준다 .

Page 45: 4.  연산자의 이해

예제모음 _08 소스

01 #include <stdio.h>0203 int main()04 {05 int coin, remain;06 int c500, c100, c50, c10;0708 printf(" ## 교환할 돈은 ? ");09 scanf("%d", &coin);1011 c500 = coin / 500;12 coin = coin % 500;1314 c100 = coin / 100;15 coin = coin % 100;16

동전 , 남은 돈 변수

각 동전 개수 변수

교환할 금액 입력

500 원짜리 동전 개수

나머지 금액

100 원짜리 동전 개수

나머지 금액

Page 46: 4.  연산자의 이해

예제모음 _08 소스

17 c50 = coin / 50;18 coin = coin % 50;1920 c10 = coin / 10;21 coin = coin % 10;2223 printf("\n 오백원짜리 ==> %d 개 \n", c500);24 printf(" 백원짜리 ==> %d 개 \n", c100);25 printf(" 오십원짜리 ==> %d 개 \n", c50);26 printf(" 십원짜리 ==> %d 개 \n", c10);27 printf(" 바꾸지 못한 잔돈 ==> %d 원 \n", coin);28 }

50 원짜리 동전 개수

나머지 금액

10 원짜리 동전 개수

나머지 금액

Page 47: 4.  연산자의 이해

[ 예제모음 _09] 윤년 계산 프로그램

실행결과

예제설명

① 입력된 년도가 윤년인지 계산하는 프로그램이다 .• 4 로 나누어 떨어지고 , 100 으로 나누어 떨어지지 않으면 윤년• 400 으로 나누어 떨어지는 것도 윤년

Page 48: 4.  연산자의 이해

예제모음 _09 소스

01 #include <stdio.h>0203 int main()04 {05 int year;0607 printf(" 년도를 입력하세요 . : ");08 scanf("%d", &year);0910 if ( ((year % 4 == 0) && ( year % 100 != 0 )) ||

( year % 400 == 0) )11 printf ("%d 년은 윤년입니다 . \n", year);12 else13 printf ("%d 년은 윤년이 아닙니다 . \n", year);14 }

키보드로 년도 입력

입력된 년도가 윤년인지 판단하여 출력

Page 49: 4.  연산자의 이해

요약

① +, -, *, / 등의 기호로 , 계산을 수행하는 기본적인 연산자② 우선순위 : *, / 가 +, - 보다 높음 , 괄호가 가장 우선③ 캐스트 연산자 : 데이터형을 강제로 바꾸는 연산자

산술 연산자산술 연산자

대입 연산자 설명 사용 예 설명

= 대입 연산자 a = 3 정수 3 을 a 에 대입

+ 더하기 a = 5 + 3 5 와 3 을 더한 값을 a 에 대입

- 빼기 a = 5 – 3 5 에서 3 을 뺀 값을 a 에 대입

* 곱하기 a = 5 * 3 5 와 3 을 곱한 값을 a 에 대입

/ 나누기 a = 5 / 35 를 3 으로 나눈 값을 a 에 대입

% 나머지값 a = 5 % 35 를 3 으로 나눈 뒤 나머지 값을 a 에 대입

Page 50: 4.  연산자의 이해

요약

대입 연산자대입 연산자 대입 연산자 설명 사용 예 설명

+= 대입 연산자 a += 3 a = a +3 과 동일

-= 대입 연산자 a -= 3 a = a -3 과 동일

*= 대입 연산자 a *= 3 a = a * 3 과 동일

/= 대입 연산자 a /= 3 a = a /3 과 동일

%= 대입 연산자 a %= 3 a = a %3 과 동일

++ 증가 연산자 a++ 또는 ++a

a +=1 또는 a = a + 1 과 동일

-- 감소 연산자 a– 또는 --a a -=1 또는 a = a - 1 과 동일

관계 연산자관계 연산자 관계연산자 의미 설명

== 같다 두 값이 동일하면 참

> 크다 왼쪽 값이 크면 참

< 작다 오른쪽 값이 크면 참

>= 크거나 같다 왼쪽 값이 크거나 같으면 참

<= 작거나 같다 왼쪽 값이 작거나 같으면 참

!= 같지 않다 두 값이 다르면 참

Page 51: 4.  연산자의 이해

요약

논리 연산자논리 연산자

비트연산자비트연산자비트연산자 의미 설명

& 논리곱 (AND) 둘 다 1 이면 1

| 논리합 (OR) 둘 중 하나만 1 이면 1

^ 배타적 논리합 (XOR) 둘이 같으면 0, 둘이 다르면 1

~ 비트 부정 1 은 0 으로 0 은 1 로

<< 비트 이동 ( 왼쪽 ) 비트를 왼쪽으로 시프트 (Shift) 시킴

>> 비트 이동 ( 오른쪽 ) 비트를 오른쪽으로 시프트 (Shift) 시킴

논리 연산자 의미 설명 사용 예

&& ~ 이고 그리고 (AND)둘다

참이어야 함 (a > 100) && (a < 200)

|| ~ 이거나 또는 (OR)둘 중 하나만 참이어도 참 (a == 100) || (a==200)

! ~ 아니다 부정 (NOT)참이면 거

짓 , 거짓이면 참

!(a < 100)

① 두 가지 이상의 조건을 표현할 때 사용

① 정수나 문자 등을 2 진수로 변환한 후에 각 자리 비트끼리 연산