컴퓨터는 0, 1밖에 이해할 수 없다. 그렇다면 3+4
를 컴퓨터는 어떻게 이해할까 ? 이에 대해 알아보고자 한다.
: 0과 1을 표현하는 가장 작은 정보 단위
2비트로 총 4가지의 정보를 표현할 수 있다.
00
01
10
11
n비트로 가지의 정보를 표현할 수 있다.
프로그램은 수많은 비트로 이루어져 있다. 다만, 표현할 때는 비트보다 더 큰 단위를 사용한다.
1바이트(1byte) | 8비트(8bit) |
1킬로바이트(1kB) | 1,000바이트(1,000byte) |
1메가바이트(1MB) | 1,000킬로바이트(1,000kB) |
1기가바이트(1GB) | 1,000메가바이트(1,000MB) |
1테라바이트(1TB) | 1,000기가바이트(1,000GB) |
: CPU가 한번에 처리할 수 있는 정보의 크기 단위
하프 워드(half word) : 워드의 절반 크기
풀 워드(full word) : 워드 크기
더블 워드(double word) : 워드의 두 배 크기
0과 1로 숫자를 표현하는 방법
2의 보수법 이용
1. 모든 0과 1을 뒤집는다.
2. 1을 더한다.
1101
0010
0011 -> 2의 보수
1101의 음수를 표현한 0011과 십진수 3을 표현한 0011을 어떻게 구분할까 ?
-> 컴퓨터는 cpu 내부의 플래그 레지스터 라는 것으로 둘을 구분한다.
10진수 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ... |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16진수 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | ... |
두 진수를 변환하는 방법이 십진수로 변환하는 방법보다 훨씬 간단하다.
방법 : 이진수를 4자리씩 끊어서 16진수로 변환
0001101000101011
0001 / 1010 / 0010 / 1011
-> 1 / A / 2 / B
->1A2B
반대로 16진수는 1개씩 끊어서 2진수로 변환시키면 된다.
5D
5 -> 0101
D -> 1101
->01011101