※ 22 비트 연산자 이해하기 ( |, &, ~ , ^ , 《, 》 )
비트 연산자는 2진수를 연산하기 위한 것으로써, 비트 연산자를 이용하여 쉽게 2진수 값(비트)를 바꿀 수 있다. 이를 위해 2진수 , 8진수, 10진수, 16진수 등의 개념에 대해 함께 이해를 하여야 한다.
▶ 문제 : ch= 255, mask =0x7F 값을 가지고 비트 연산자인 &, ~, ^, 》, 《 들을 사용하여 연산된 결과 값을 출력하라.
▶ 포인트 :
10진수와 2진수, 8진수, 16진수와의 관계
십진수 |
2진수 |
8진수 |
16진수 |
0 |
0000 |
000 |
0 |
1 |
0001 |
001 |
1 |
2 |
0010 |
002 |
2 |
3 |
0011 |
003 |
3 |
4 |
0100 |
004 |
4 |
5 |
0101 |
005 |
5 |
6 |
0110 |
006 |
6 |
7 |
0111 |
007 |
7 |
8 |
1000 |
010 |
8 |
9 |
1001 |
011 |
9 |
10 |
1010 |
012 |
A |
11 |
1011 |
013 |
B |
12 |
1100 |
014 |
C |
13 |
1101 |
015 |
D |
14 |
1110 |
016 |
E |
15 |
1111 |
017 |
F |
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이 된다.
▶ 프로그램 :
▶ 실행 결과 :
▶ 소스코드 다운로드 :
'Language > C & C++' 카테고리의 다른 글
【 C 언어 】#24 sizeof 연산자 이해하기 (0) | 2018.03.16 |
---|---|
【 C 언어 】#23 캐스트 연산자 이해하기 (0) | 2018.03.13 |
【 C 언어 】#21 논리 연산자 이해하기 (0) | 2018.02.20 |
【 C 언어 】#20 관계 연산자 이해하기 (0) | 2018.02.19 |
【 C 언어 】#19 증감연산자 이해하기 (++ / --) (0) | 2018.02.19 |