2024.04.09 - [CS] - [CS] 컴퓨터 구조의 이해
데이터
는 컴퓨터가 이해할 수 있는 정보라고 말씀 드렸는데요. 그렇다면 데이터를 어떻게 표현할 수 있는지 살펴보겠습니다.
비트(bit)
- 컴퓨터가 이해하는 가장 작은 정보 단위
- binary(이진수) digit 의 줄임말로써, 0과 1로만 정보를 표현할 수 있습니다.
- n개의 비트로 2^n 가지 정보 가능
- 예를 들어, 2개의 비트로 표현할 수 있는 정보 : 4가지( = 2^2)}
==> (0,0) (0,1) (1,0) (1,1)
- 예를 들어, 2개의 비트로 표현할 수 있는 정보 : 4가지( = 2^2)}
바이트(byte)
- 8 비트를 묶은 단위 (참고)
- 256가지(=2^8)의 정보를 표현할 수 있습니다.
데이터의 크기(용량)는 하기 테이블 참고 바랍니다.
구분 | 비고 |
바이트(byte) | 8 비트 |
킬로바이트(kB) | 1000 바이트 |
메가바이트(MB) | 1000 킬로바이트 |
기가바이트(GB) | 1000 메가바이트 |
테라바이트(TB) | 1000 기가바이트 |
그외 관련 단위
비트보다 크고 바이트보다 작은 단위를 포함하여 중요한 단위도 참고해주세요.
- `니블(nibble)` : 4 bit (1 바이트의 절반)
- 옥텟(octet) : 바이트와 같은 뜻. 전기통신 분야에서는 바이트 용어대신 사용하기도 함
- `워드(word)` : CPU가 한번에 처리할 수 있는 데이터 크기 (참고)
ㄴ 흔히 사용하는 32비트 CPU(ARM) : 32비트 워드
ㄴ x64 CPU : 64비트 워드
데이터 표현방법에 대하여
모든 숫자를 0,1 만으로 커버하기엔 길이가 너무 길어져 비효율적입니다. 십진수와 십육진수가 만들어진 배경이기도 하죠.
- `binary` : 이진수를 뜻하며 0, 1만으로 모든 숫자를 표현하는 체계
- `decimal` : 십진수를 뜻하며 0~9, 열개의 숫자로 모든 수를 표현할 수 있는 체계
- `hexadecimal` : 십육진수를 뜻하며 0~9, A~F 10개의 숫자와 6개의 문자로 모든 수를 표현할 수 있는 체계
8이라는 숫자를 이진수, 십진수, 십육진수로 표현하면 아래와 같습니다.
구분 | 코드상 표기방식 |
binary | 0b1000 |
decimal | 8 |
hexadecimal | 0x8 |
Binary ↔ Hexadecimal 변환하기
십육진수를 사용하는 이유는 간단합니다. 이진수에서 십육진수로 변환하기 쉽고, 반대(십육진수→이진수)로도 역시 쉽습니다.
변환할때는 하나만 기억하면 됩니다.십육진수 글자 하나를 이진수로 바꾸기 위해서 필요하려면 `4비트`가 필요하다. (2^4 = 16)
- hex → binary
- 십육진수 각 글자별로 모두 이진수로 표현한다
- 해당 이진수를 순차적으로 나열한다.
- 1C(hex) = 000111000(binary)
※ binary → hex는 반대로 하면 되니, 생략하겠습니다.
알아두면 쓸모있는
- 이진수의 음수표현 : 2의 보수
- 2의 보수를 쉽게 구하는 방법은 '모든 0과 1을 뒤집고, 거기에 1을 더한 값' 입니다.
- 예를 들어, 1011의 음수표현(2의보수)는 0100 + 1 = 0101 이 되는 거죠.
출처
'CS' 카테고리의 다른 글
[CS] 실행 흐름을 파악할 수 있는 레지스터의 종류 (0) | 2024.04.14 |
---|---|
[CS] 명령어 구조 알아보기 (0) | 2024.04.12 |
[CS] 명령어 변환방식 : 컴파일, 인터프리터 (0) | 2024.04.11 |
[CS] 문자집합, 인코딩, 디코딩에 대하여 (feat. 아스키코드) (0) | 2024.04.11 |
[CS] 컴퓨터 구조의 이해 (0) | 2024.04.09 |