비트는 컴퓨터에서 데이터를 나타내는 최소 단위이다. 모든 데이터는 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^6 → 5(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 하나뿐인 숫자 찾기
'코딩문제(LeetCode) > Easy' 카테고리의 다른 글
[코딩연습] Remove Duplicates from Sorted Array 정렬된 배열에서 중복값 제거하기 (0) | 2019.03.17 |
---|---|
[코딩연습] Single Number 하나뿐인 숫자 찾기 (2) | 2019.03.16 |
[코딩연습] Search Insert Position 숫자를 넣을 자리 찾기 (0) | 2019.03.14 |
[코딩연습] Length of Last Word 마지막 단어의 길이 구하기 (2) | 2019.03.12 |
[코딩연습] Plus One 배열을 정수로 보고 1 더하기 (0) | 2019.03.11 |