0️⃣ bit?
2진법에 대해 이야기하기 전에 bit에 대해 먼저 알아야한다.
컴퓨터는 0과 1로만 된 정보를 읽고 이해할 수 있다.
bit는 컴퓨터가 이해할 수 있는 가장 작은 정보 단위이다. 또한, 컴퓨터가 이해할 수 있는 정보라는 것은 0과 1로 이루어져있다는 뜻이다.
일반적으로 bit는 전구 또는 전기 스위치에 빗대어 많이 표현한다. off (0) 또는 on (1), 총 두 가지 정보를 표현할 수 있고 전구 하나를 1bit라고 말한다. 아래 그림처럼 전구 2개가 있는 경우엔 2bit라고 이야기 한다.
n개의 전구 즉 n비트는
1️⃣ 2진법
우리가 일상적으로 숫자를 세는 1, 2, 3, ... 10, 11 ... 과 같은 방법은 10진법이다. 10진법은 0부터 9까지 숫자를 이용하여 모든 숫자를 표현하고 9가 넘어가는 시점에서 자리올림을 한다.
그렇다면 2진법이란 무엇일까? 2진법은 0과 1만으로 모든 숫자를 표현하는 방법을 말한다. 숫자가 1을 넘어가는 시점에서 자리 올림을 하는 것이다.
10진수 (10진법으로 표현한 수) | 2진수 (2진법으로 표현한 수) |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
이렇게 2진법에서는 0과 1로만 수를 표현한다.
2진수를 보다 쉽게 10진수로 바꿀 수 있는 방법은 각 자릿수를 2의 n번째 제곱을 해주면 된다. 4bit로 예시를 들어보겠다.
4bit 각 자릿수의 값은 8(2³), 4(2²), 2(2¹), 1(2⁰)이다. 불이 들어온 전구의 위치는 4와 2의 값을 가진 전구로 이 두 숫자를 합하면 6이 나온다. 위 표를 다시. 참고 해보면 0110₍₂₎는 십진수 6임을 확인할 수 있다.
2️⃣ 16진법
2진법은 0과 1로만 표현하다보니 숫자의 길이가 길어진다는 단점이 있다. 10진수 32는 곧 2진수 1000000인 것처럼 말이다.
16진법은 수가 15를 넘어가는 시점에서 자리 올림을 하고, 특이하게도 0~9까지는 십진수와 동일하게 표현하지만 10~15의 숫자는 A~F 알파벳으로 표현한다.
16진수를 코드상에서 표기할 때 앞에 0x를 붙여 구분하는데, 이렇게 보면 제법 익숙하다. 이를 Hex라고 부르며 디지털 컬러코드를 Hex Code라고 부르는 이유도 16진법으로 색을 표현하고 있기 때문이다.
10진수 | 0 | 1 | ... | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
16진수 | 0 | 1 | ... | A | B | C | D | E | F | 10 |
16진법이 사용되는 예시 :
- 색상표현 (Hex Code)
- 컴퓨터 하드웨어 주소 표현
- 메모리 값 표현
3️⃣ 2진수와 16진수의 진법변환
2진수와 16진수를 서로 변환하는 것은 매우 쉽고 용이하다. 16진수 한 글자를 4bit의 2진수로 간주하기 때문이다.
16진수 1A2B는 각 자릿수는 각각 4bit, 즉 2진수로 변환할 수 있다. 반대로 생각하면 네 자리 수의 2진수는 하나의 16진수로 계산할 수 있는 것이다. 이렇게 쉽게 진법변환이 가능하여 16진수를 매우 다양하게 활용한다.
❗ 참고자료
- 강민철, 혼자 공부하는 컴퓨터구조 + 운영체제, 한빛미디어 (2022)
- 널널한 개발자, 넓고 얕게 외워서 컴공 전공자 되기, 인프런
'CS' 카테고리의 다른 글
[얼레벌레 공부하는 CS] 프로세스와 스레드 (1) | 2024.06.03 |
---|---|
[얼레벌레 공부하는 CS] 운영체제 (0) | 2024.05.31 |
[얼레벌레 공부하는 CS] RAM (0) | 2024.05.28 |
[얼레벌레 공부하는 CS] 컴파일 언어와 인터프리터 언어 (0) | 2024.05.13 |
[얼레벌레 공부하는 CS] 자료구조와 Stack, Queue (2) | 2024.04.24 |