데이터 표현 (2진수, 8진수, 10진수, 16진수)[부호가 없는 정수(unsigned)]
데이터 표현 (2진수, 8진수, 10진수, 16진수)[부호가 없는 정수(unsigned)]
컴퓨터 메모리의 내용을 표시하기 위해 2진수가 흔히 사용되며, 10진수와 16진수도 필요시 사용이 된다.
기계 수준 명령어의 내용을 보여줄 때는일반적으로 16진수를 사용한다. 컴퓨터는 명령어와 데이터를 전하충전 상태의 집합 형태로 메모리에 저장을 하고, 이러한 개체를 사용하여 숫자를 표현하기 위해서는 켜짐(on)과 꺼짐(off)이나 참(true)과 거짓(false)의 개념에 맞는 시스템이 필요하다.
수의 체계 | 밑 | 사용 가능한 자리 숫자 |
2진수 | 2 | 0 1 |
8진수 | 8 | 0 1 2 3 4 5 6 7 8 |
10진수 | 10 | 0 1 2 3 4 5 6 7 8 9 |
16진수 | 16 | 0 1 2 3 4 5 6 7 8 9 A B C D E F |
정수는 2가지로 나뉘어 집니다.
- 부호가 있는 정수( signed ) : 양수 혹은 음수
- 부호가 없는 정수 ( unsigned ) : 기본적으로 양수
부호가 없는 정수 (unsigned)
2 진수 (binary number)
▶ 밑이 2이고 자리 숫자는 0 또는 1이다.
▶ 2진수 한 자리(binary number)를 비트(bit)라고 한다.
▶ 비트(bit)는 오른쪽에서 0부터 시작하여, 왼쪽으로 증가하면서 번호가 부여된다. (이 번호가 지수가 된다.)
※ 오른쪽 비트 : 최하위 비트 (least significant bit : LSB)
※ 왼쪽 비트 : 최상위 비트 (most significant bit : MSB)
■ 예시 1
16비트 2진수의 LSB 와 MSB
■ 예시 2
2진수 01000101을 10진수로 변환
오른쪽에서부터 왼쪽으로 계산을 한다.
(1 * 1) + (1 * 4[2의 2승]) + (1 * 64[2의 6승]) = 69
■ 예시 3
부호없는 10진수 정수를 2진수로 변환방법
> 10진수 정수 69를 2진수로 변환
나눗셈 | 몫 | 나머지 |
69 / 2 | 34 | 1 |
34 / 2 | 17 | 0 |
17 / 2 | 8 | 1 |
8 / 2 | 4 | 0 |
4 / 2 | 2 | 0 |
2 / 2 | 1 | 0 |
1 / 2 | 0 | 1 |
표에서 '나머지' 값들을 위에서부터 순서대로 나열을 하면 1000101
▶ 부호가 없는 2진수 덧셈
■ 예시
2진수 0000100
2진수 0000111
▶ 부호가 없는 16진수
16진수를 사용하면 2진수 데이터를 편리하게 나타낼 수 있다. 16진수 2자리는 1바이트(Byte)를 나타낸다.
2진수 | 10진수 | 16진수 |
0000 | 0 | 0 |
0001 | 1 | 1 |
0010 | 2 | 2 |
0011 | 3 | 3 |
0100 | 4 | 4 |
0101 | 5 | 5 |
0110 | 6 | 6 |
0111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | 10 | A |
1011 | 11 | B |
1100 | 12 | C |
1101 | 13 | D |
1110 | 14 | E |
1111 | 15 | F |
■ 예시 1
2진수 000101101010011110010100 16진수 표현방법
1 | 6 | A | 7 | 9 | 4 |
0001 | 0110 | 1010 | 0111 | 1001 | 0100 |
결과 : 16A794
■ 예시 2
16진수 16A794를 10진수로 표현방법
(1 * 4) + (16 * 9) + (16의 2승[256]* 7) + (16의 3[4,096]승 * 10[A]) + (16의 4승[65,536] * 6) + (16의 5승[1,048,576] * 1)결과 : 4 + 144 + 1,792 + 40,960 + 393,216 + 1,048,576 = 1,484,692
▶정수 저장 공간 크기
> 기본 저장공간 단위 : 1byte = 8bit
- 1 word = 2byte = 16bit
- 1 doubleword = 4byte = 32bit
- 1 quadword = 8byte = 64bit
> 큰 단위 저장공간
- 1 (kilobyte)KB = (2의 10승)byte
- 1 (megabyte)MB = (2의 20승)byte
- 1 (gigabyte)GB = (2의 30승)byte<
- 1 (terabyte)TB = (2의 40승)byte
- 1 petabyte = (2의 50승)byte
- 1 exabyte = (2의 60승)byte
- 1 zettabyte = (2의 70승)byte
- 1 yottabyte = (2의 80승)byte