
💡 비트는 컴퓨터가 데이터를 저장하는 가장 작은 단위 이다.
최초의 컴퓨터는 여러 개의 전구를 이용하여 정보를 표현했다. 예를 들어 전구 하나를 이용하면, 불이 켜지고 꺼지는 두 가지 상황을 표현할 수 있다. 전구 두 개를 이용하면 총 네가지의 상황을 표현할 수 있다.

그래서 불이 켜지고(1) 꺼지는(0) 상황을 비트로 표현하게 된다.

컴퓨터에서의 상황은 몇 개의 숫자 정보를 표현할 수 있는지를 말한다. 만약 비트가 2개라면 2^2인 4개의 수 (0, 1, 2, 3)를 표현할 수 있다. 비트가 8개라면 2^8인 256개의 수 (0, 1, 2, ..., 255)를 표현할 수 있다. 만약 음수도 표현을 하게 된다면 절반을 잘라서 -128부터 127까지의 수를 표현할 수 있게 된다.
10진수는 현실세계에서 어떠한 수를 0부터 9까지 총 10개의 수로 표현하는 방법을 말한다.
2진수는 컴퓨터에서 어떠한 수를 0과 1 총 2개의 수로 표현하는 방법을 말한다.
같은 논리로 16진수는 어떠한 숫자를 0부터 15까지 총 16개의 수로 표현하는 방법을 말한다.
그런데 "2410" 이라는 수가 16진수로 표현이 되어있다면 어떻게 해석해야 할까? 2/4/1/0 으로 표현된 것인지, 2/4/10으로 표현된건지 모호하다. 따라서 16진수의 경우, 10부터는 알파벳으로 표기한다. (10 : A, 11 : B, 12 : C, 13 : D, 14 : E, 15 : F)
따라서 2/4/10 이라는 의도로 표현된 것이 맞다면 24A라고 표기해야 올바른 방법이다.
컴퓨터가 정보를 저장하기 위해서는 비트 단위로 나눠서 연산을 해야 한다. 즉 현실세계에서 사용하는 10진수는 0과 1로 표현할 수 있는 이진수로 바꿔줘야 한다. 그렇다면 10진수를 2진수로 바꾸려면 어떻게 해야할까?
| 연산자 | 별칭 | 설명 |
|---|---|---|
| & | AND | 두 개의 비트 모두 1일 때만 1 |
| | | OR | 두 개의 비트 중 하나라도 1일때 1 |
| ^ | XOR | 두 개의 비트가 같으면 0, 다르면 1 |
| ~ | NOT | 비트값이 1이면 0, 0이면 1로 (단항연산자) |
- 어떠한 수를 먼저 이진수로 바꿔준다.
- 1의 보수를 구한다.
- 1을 더해준다.
| 연산자 | 설명 |
|---|---|
| >> | 비트를 우측으로 이동 |
| << | 비트를 좌측으로 이동 |