11. bool 자료형 사용하기

 - boolean

  * #include <stdbool.h>

bool b1 = true;

if ( b1 == true )

printf ( 참 ) ;

else

printf( 거짓 ) ;


 - bool 자료형의 크기

printf(" bool의 크기 : %d", sizeof(bool));


 - bool 자료형과 논리 연산자

 - true, false를 문자열로 출력

 - if 조건문에서 bool 자료형 사용




핵심 정리

 1. 비교 연산자

 2. 삼항 연산자

  - 조건식 ? 값1 (true) : 값2 (false) ;

 3. 논리 연산자

 4. bool 연산자




12. 비트 연산자

연산자설명
&비트 AND
|비트 OR
^비트 XOR (배타적 OR, Exclusive OR)
~비트 NOT
<<비트를 왼쪽으로 시프트
>>비트를 오른쪽으로 시프트
&=비트 AND 연산 후 할당
|=비트 OR 연산 후 할당
^=비트 XOR 연산 후 할당
<<=비트를 왼쪽으로 시프트한 후 할당
>>=비트를 오른쪽으로 시프트한 후 할당


 - 부호 있는 자료형의 비트 연산

  1000 0000 ( -128 )

                 >> 2

---------------------

  1110 0000 ( - 32 )


 - 연산자 우선순위

우선순위연산자설명결합 법칙(방향)
1




x++
x--
()
[]
->
증가 연산자(뒤, 후위)
감소 연산자(뒤, 후위)
함수 호출
배열 첨자
포인터로 요소 선택





2









++x
--x
+x
-x
!
~
(자료형)
*x
&x
sizeof
증가 연산자(앞, 전위)
감소 연산자(앞, 전위)
단항 덧셈(양의 부호)
단항 뺄셈(음의 부호)
논리 NOT
비트 NOT
자료형 캐스팅
포인터 x 역참조
x의 주소
자료형의 크기










3


*
/
%
곱셈
나눗셈
나머지



4

+
-
덧셈
뺄셈


5

<< 
>> 
비트를 왼쪽으로 시프트
비트를 오른쪽으로 시프트


6




<=

>=
작음
작거나 같음

크거나 같음




7

==
!=
같음
다름


8&비트 AND
9^비트 XOR
10|비트 OR
11 &&논리 AND
12||논리 OR
13? :삼항 연산자
14










=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
할당
덧셈 후 할당
뺄셈 후 할당
곱셈 후 할당
나눗셈 후 할당
나머지 연산 후 할당
비트를 왼쪽으로 시프트한 후 할당
비트를 오른쪽으로 시프트한 후 할당
비트 AND 연산 후 할당
비트 XOR 연산 후 할당
비트 OR 연산 후 할당












15,쉼표(콤마) 연산자

  

 - 비트 XOR 연산자를 이용한 암호화

 int plane = 100;

 int key = 57;

 

 int encrypted = plane ^ key ;

 printf("%d", encrypted) ;                 // 93

 

 int decrypted = encrypted ^ key ;    // 복호화

 printf("%d", decrypted );                // 100 : 평문 plane과 같음


 - 두 변수의 값을 바꾸는 코드

int a = 10 ;

int b = 20 ;

int temp ;


temp = a ;

a = b ;

b = temp ;


printf ( "%d", a ) ;

printf ( "%d", b ) ;

  

 * 임시 변수 없이 비트 XOR 연산자를 세번 사용하여 두 변수의 값을 바꾸는 방법

int a = 10;    // 0000 1010

int b = 20;    // 0001 0100


a = a ^ b;

// 0000 1010

// 0001 0100 XOR

// ----------

// 0001 1110 = > 24


b = a ^ b;  

// 0001 1110

// 0001 0100  XOR

// ----------

// 0000 1010 => 10

a = a ^ b;

// 0001 1110

// 0000 1010 XOR

// ---------

// 0001 0100 = > 20


printf("%d\n", a);

printf("%d\n", b);



'Basic > C' 카테고리의 다른 글

08. C언어 기초 보기 연습문제  (0) 2016.08.30
07. C언어 기초 보기7  (0) 2016.08.30
05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29

+ Recent posts