【 C 언어 】#22 비트 연산자 이해하기

Language/C & C++ 2018. 3. 9. 16:10 Posted by 엑소더스팩토리
반응형

※  22 비트 연산자 이해하기 ( |, &, ~ , ^  , 《, 》 )


  비트 연산자는 2진수를 연산하기 위한 것으로써, 비트 연산자를 이용하여 쉽게 2진수 값(비트)를 바꿀 수 있다. 이를 위해 2진수 , 8진수, 10진수, 16진수 등의 개념에 대해 함께 이해를 하여야 한다.


▶ 문제 : ch= 255, mask =0x7F 값을 가지고 비트 연산자인 &, ~, ^, 》, 《 들을 사용하여 연산된 결과 값을 출력하라. 


▶ 포인트 


10진수와 2진수, 8진수, 16진수와의 관계 


  십진수

 2진수 

 8진수 

 16진수 

 0

  0000 

000 

 1

 0001

001

 2

 0010

002 

 3

 0011

003 

 4

 0100

004 

 5

 0101

005 

 6

 0110

006 

 7

 0111

007 

 8

 1000

010 

 9

 1001

011 

 10

 1010

012 

 11

 1011

013 

 12

 1100

014 

 13

 1101

015 

 14

 1110

016

 15

 1111

017 

 16

10000

020 

10 


 & (AND 연산자) 는 논리곱으로서 두 비트가 모두 1일 때만 결과 값이 1이 되고 나머지는 0이 된다.  ( 특정 비트를 0으로 만들때 유용하게 사용된다)


 ~ (NOT 연산자) 는 부정으로서 0을 1로 , 1을 0으로 논리 값을 반전 시킨다.

^ (베타OR) 는 두 개의 비트가 서로 다른 값일 때만 1이 되고 나머지의 경우에는 모두 0이 된다.  ( ch ^ ch : 같은 값을 ^하기 때문에 무조건 0이 됨으로 ch 값을 0으로 만들 때 많이 사용하는 방법이다)

→ 》 (비트 이동) 는 1비트씩 오른쪽으로 이동 한다. 왼쪽 새로 채워지는 비트는 0이 된다.

 《 (비트 이동) 는 1비트씩 왼쪽으로 이동 한다. 오른쪽 새로 채워지는 비트는 0이 된다. 


▶ 프로그램 : 





▶ 실행 결과 :


▶ 소스코드 다운로드 :  

 21 논리 연산자 이해하기.cpp


반응형