비트 단위 연산
C에서 비트 연산 방법에 대해 알아보도록 하겠다.
이에 앞서 비트에 대한 이해가 필요한데 비트(Bit)란
컴퓨터의 전기 신호로 0,1 두 가지 수 밖에 표현을 하지
못한다
bit는 2진수 값으로 컴퓨터가 나타내는 데이터의 최소
단위 값이라 생각하면된다.
1bit가 8개 모여 1byte가 되며 1byte는 2의 8제곱승이며 256개의
값을 표현 할 수 있다.
비트 연산자의 종류 |
비트 연산자의 종류는 아래와 같이 6가지 종류가 있다.
연산자 |
설명 |
& |
비트 단위 AND ex) 1 & 1 -> 1 |
| |
비트 단위 OR ex) 1| 0 -> 1 |
^ |
비트 단위 XOR ex) 1 ^ 1 -> 0 |
~ |
비트 단위 NOT ex) ~0 -> 1 |
<< |
왼쪽으로 이동 ex) a << 2 |
>> |
오른쪽으로 이동 ex) b >>3 |
[ & (AND) 연산자 ]
연산 |
결과 |
0 & 0 |
0 |
0 & 1 |
0 |
1 & 0 |
0 |
1 & 1 | 1 |
0001 0011 AND 0001 0010 |
= 0001 0010 |
[ | (OR) 연산자 ]
연산 | 결과 |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
0001 0011 OR 0001 0010 |
= 0001 0011 |
[ ^ (XOR) 연산자 ]
연산 | 결과 |
0 & 0 | 0 |
0 & 1 | 0 |
1 & 0 | 0 |
1 & 1 | 1 |
0001 0011 ^ 0001 0010 |
= 0000 0001 |
[ ~ (NOT) 연산자 ]
연산 | 결과 |
0 & 0 | 0 |
0 & 1 | 0 |
~ 0001 0010 |
= 1110 1101 |
[ << (shift) 연산자 ]
연산 | 결과 |
8 << 2 | 32 |
0000 0100 |
= 0001 0000 |
0000 0100 이 왼쪽으로 두 번 간다는 얘기 이다.
0000 0100 <- 앞에 숫자 00을 두개 삭제 한다.
00 0100 <- 맨 뒤에 숫자 두 개 빠진 결과에
0001 0000 <- 00을 뒤에 붙인다.
[ >> (shift) 연산자 ]
연산 | 결과 |
8 >> 2 | 1 |
0000 0100 |
= 0000 0001 |
0000 0100 이 오른쪽으로 두 번 간다는 얘기 이다.
0000 0100 <- 뒤에 숫자 00을 두개 삭제 한다.
0000 01 <- 맨 뒤에 숫자 두 개 빠진 결과에
0000 0001 <- 00을 앞에 붙인다.
'프로그램 > C' 카테고리의 다른 글
[C] for 반복문 사용법 (0) | 2017.03.14 |
---|---|
[C] while, do~while 반목문 사용법 (0) | 2017.03.13 |
[C] 입력 함수 scanf 사용법 (0) | 2017.03.10 |
[C] 출력 함수 printf 사용법 (0) | 2017.03.09 |
[C] 증감 연산자 (0) | 2017.03.08 |