비트 단위 연산


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

 
8을 2진 수로 나타 내면 위와 같이 0000 0100 이다. 여기서 왼쪽으로 쉬프트 2를 했다는 것은

0000 0100 이 왼쪽으로 두 번 간다는 얘기 이다.


0000 0100   <- 앞에 숫자 00을 두개 삭제 한다.

00 0100      <- 맨 뒤에 숫자 두 개 빠진 결과에 

0001 0000   <- 00을 뒤에 붙인다.







[ >> (shift) 연산자 ]

연산

결과 

8 >> 2

 1 


     0000 0100

 =   0000 0001

 
8을 2진 수로 나타 내면 위와 같이 0000 0100 이다. 여기서 오른쪽으로 쉬프트 2를 했다는 것은

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

+ Recent posts