메모리에 정보를 저장하는 순서(ByteOrder) - 빅 엔디안 / 리틀 엔디안

컴퓨터/컴퓨터 공학 기초

728x90
반응형

메모리에 정보를 저장하다

컴퓨터에서는 어떠한 정보(데이터)를 메모리에 저장하게 됩니다. 

이 정보의 가장 작은 단위를 우리는 Bit(비트)라고 부르며,

8개의 비트가 모이면 이를 1Byte(바이트)라고 부르며, 메모리의 공간을 표현하는 최소 단위가 됩니다.

 

이때 프로그래밍 언어들을 통해 메모리에 정보를 저장하기 위해서는 기본적으로 크기를 정의하여 공간을 할당하고 2진수의 형태로 값이 저장되게 됩니다.

4Byte 크기에 10진수 100을 2진수로 표현한다면 다음과 같습니다.

 

만약 왼쪽부터 값을 읽는다면,

00000000 00000000 00000000 01100100 

하지만 오른쪽 부터 읽는다면,

01100100 00000000 00000000 00000000

결국 읽는 방향, 저장하는 방향에 따라 메모리 안에 저장되어있는 2진수 값은 차이가 있을 수 있습니다.

 

이렇게 메모리 공간안에 정보(데이터를 어떻게 쌓아 올리느냐에 따라 두 가지 방식으로 나눌 수 있습니다.

  • 빅 엔디안 방식(Big endian)
  • 리틀 엔디안 방식(Little endian)

 

 

빅 엔디안 방식

위 예시에서는 가로로 되어있는 메모리를 상상해서 방향을 말했지만 정확히 말하자면 빅 엔디안 방식은 우리가 흔히 2진수를 읽기 위한 방식과 같습니다. 위에 예시처럼 왼쪽에서 오른쪽으로 값을 읽는 방식입니다.

위처럼 낮은 메모리 주소부터 높은 메모리 순서에 데이터가 저장됩니다.

 

리틀 엔디안 방식

리틀 엔디안 방식은 빅엔디안 방식과 반대의 개념으로 됩니다. 높은 메모리 주소부터 낮은 메모리 순서로 데이터가 저장됩니다.

사용처와 특징

메모리는 대부분 운영체제에서 관리합니다. 따라서 운영체제에서 지향하는 메모리 관리 철학에 맞게 리틀 엔디안 또는 빅 엔디안 방식으로 메모리에 데이터를 관리합니다. 이에 따른 특징은 다음과 같습니다.

 

  • 빅 엔디언
    • 편리한 디버그가 가능하다 
      • 사람이 숫자를 읽고 쓰는 방법과 같이 때문에 메모리의 값을 확인하기 유리하다.
  • 리틀 엔디언
    • 메모리 구조에서 단순 데이터를 조작 산술 연산을 수행할 때 비교적 빠르다.
      • 위 예시처럼 낮은 주소부터 메모리 주소를 읽을 때 데이터 처리가 유리하다.

사실 오늘날 어떠한 방식의 메모리 저장 방식이 정답이다라고 말하기는 어렵습니다. 하지만 다양한 운영체제에서 채택하여 사용하는 메모리 저장 관리가 다르기 때문에 바이트 오더를 정확히 알고 있어야만 정확한 메모리에서 데이터 처리가 가능하게 됩니다.

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :