비트는 컴퓨터에서 데이터를 나타내는 최소 단위이다. 모든 데이터는 0과 1의 조합으로 구성되는데, 이 0또는 1이 하나의 비트이다. 1개의 비트는 두 가지 상태를 나타낼 수 있으므로 n개의 비트로는 2ⁿ가지의 상태를 나타낼 수 있다.





비트연산자란 비트 패턴이나 개별 비트 조작이 필요한 이진수에 대해 비트 단위의 연산을 실시하기 위해 사용되는 연산자이다. 비트연산자는 산술연산자 + - * / 보다 훨씬 빠르지만 요즘은 컴파일러가 자동으로 비트연산자로 변환해 주기 때문에 코딩하면서 일일히 산술연산자를 비트연산자로 바꿀 필요는 없다. 다만 알아두면 프로그래밍 시에 유용하게 쓰일 일이 많으니 비트연산자는 숙지 하는게 좋겠다. 비트연산자는 대수에서 A + B = B + A 처럼 교환법칙이 성립한다.






&(AND) 양쪽 비트가 모두 1일때만 결과가 1이되고 그렇지않으면 0

예시 : 7&2  → 2 (7=111, 2=10)




|(OR) 두 비트 중 어느 하나라도 1이면 결과가 1이고 모두 0일때만 0

예시 : 4 | 5  → 5 (4=100, 5=101)




^(XOR) 두 비트가 서로 다를때 1 같을때는 0이다

예시 : 3^65(3=11, 6=110)




~ 모든 비트 값을 반대로 만든다

예시 : int num1=17, int num2=~num1; → num2=-18

num1=00000000 00000000 00000000 00010001

num2=11111111 11111111 11111111 11101110





아래 포스팅은 비트연산자를 이용한 프로그래밍 문제 해결의 예시이다.


2019/03/16 - [프로그래밍문제풀기] - [코딩연습] Single Number 하나뿐인 숫자 찾기





+ Recent posts