컴퓨터가 메모리에 데이터를 저장하는 방법.

 

메모리에 Data가 적재되는 방법으로는 Little Endian 방식과 Big Endian 방식이 있다.

 

Big Endian 방식.

 · 사람과 동일하게 앞에서부터 순차적으로 데이터를 저장하는 방식.

 · 모토롤라 관련 CPU, IBM or 썬마이크로시스템즈의 컴퓨터들이 사용하는 방식.

 · Java의 자바 가상 머신은 운영체제나 하드웨어 상관없이 항상 Big Endian을 사용.

 

 

 ex) 0x12345678 값을 저장한다면 하기와 같은 방식으로 메모리에 저장된다.

 

주소

0x0001

0x0002

0x0003

 0x0004

Data

0x12

0x34

0x56

0x78

 

 

Little Endian 방식.

 

 · Big Endian 방식과 반대로 메모리에 역순으로 데이터를 저장하는 방식

 · Intel 사의 칫셋과 호환이 되는 컴퓨터들이 사용하는 방식.

 

 ex) 0x12345678 값을 저장한다면 하기와 같은 방식으로 메모리에 저장된다.

 

주소

0x0001

0x0002

0x0003

 0x0004

Data

0x78

0x56

0x34

0x12

 

현재 사용중인 컴퓨터에서 어떤 방식으로 저장되는지 확인해보기.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0x12345678;
 
    int* p = &i;
    
    char* p1 = (char *)&i;
    char* p2 = (p1 + 1);
    char* p3 = (p2 + 1);
    char* p4 = (p3 + 1);
 
    printf("%p : %x\n", p, *p);
    printf("%p : %x\n", p1, *p1);
    printf("%p : %x\n", p2, *p2);
    printf("%p : %x\n", p3, *p3);
    printf("%p : %x\n", p4, *p4);
 
    return 0;
}
cs

 

<결과>

 

주소

0x002DF928

0X002DF929

0X002DF92A

 0x002DF922B

Data

0x78

0x56

0x34

0x12

 

현재 사용중인 lenovo T530 노트북은 Little Endian 방식임을 알 수 있다.

(결과 주소는 PC마다 다르게 나올 수 있음.)

 

 

컴퓨터가 음수를 처리하는 방법.

 

컴퓨터는 첫 번째 비트를 부호 표현을 위해 따로 배정한다.

이를 부호 비트(signed bit)라 부르며 부호 비트가 0이면 양수, 1이면 음수를 나타내게 된다.

 

논리 회로가 음수를 표현하는 방법은 대표적으로 3가지가 있다.

 

 1. 부호 절대값 방법.

  부호 비트를 제외한 수를 양수 값으로 읽고, 마이너스를 붙이는 방법.

  +3 = 00000011₂

  -3 = 10000011₂

  사람이 사용하기에는 편하지만, 이진수 계산이 안되기 때문에 컴퓨터에선 사용할 수 없다.

 

 2. 1의 보수 방법.

  양수 값의 비트를 반전시켜 음수를 표현하는 방법.

  +3 = 00000011₂

  -3 = 11111100₂

  값이 0인 경우에는 00000000₂ 과 11111111₂ 두 값이 모두 0을 나타낼 수 있기 때문에 컴퓨터에선 사용하지 않는다.

 

 3. 2의 보수 방법.

  1의 보수 방법에서 1을 더하는 방법.

  +3 = 00000011₂

  -3 = 11111101₂

  1의 보수 방법과 다르게 11111111₂이 -1 값을 의미하므로 0과 구분된다.

 

위와 같은 이유로 컴퓨터는 2의 보수 방법으로 음수를 표현한다.

'Programming > Knowledge' 카테고리의 다른 글

DLL (Dynamic Link Library) 1  (0) 2017.05.26

+ Recent posts