알고리즘

엔디안(Endianness)

PGNV 2022. 2. 9. 13:10

엔디안(Endianness)

컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 의미 (HW아키텍처마다 다름)

※속도 향상을 위해 바이트 단위와 워드 단위를 변환하여 연산 할 때 올바로 이해하지 않으면 오류 발생

 

 

컴퓨터는 모든 데이터를 2진수로 표현하고 처리합니다.

비트(bit)란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위인데, 이러한 비트는 2진수 값(0과1) 하나만 저장가능합니다.

위에 비트(bit)가 8개 모이면 바이트(byte)가 되는데 한 문자를 표현할 수 있는 최소 단위 입니다.

컴퓨터는 데이터를 메모리에 저장할 때 바이트(byte) 단위로 나눠서 저장합니다.

컴퓨터가 저장하는 데이터는 32비트(4바이트), 64비트(8바이트)로 구성되는데,

연속된 바이트를 순서대로 저장하는 것을 "바이트 저장 순서(byte order)"라고 합니다.

 

바이트 저장 순서는 크게 두가지 방식입니다.

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

 

 

 

 

 

 

 

 

 

 

 

 

빅 엔디안(Big endian)

  • 낮은 주소에 데이터의 높은 바이트(MSB, Most Signifiacant Bit)부터 저장하는 방식
  • 보통 큰 단위가 앞에 나옴
  • 메모리 저장된 순서를 그대로 읽을 수 있으며, 이해하기가 쉽다.
  • SPARC을 포함한 대부분의 RISC CPU 계열에서 이방식으로 데이터 저장
  • 데이터의 각 바이트를 배열처럼 취급할 때에 적합
  • 네트워크 데이트 전송에 사용

 

 

 

 

 

 

 

 

 

 

 

리틀 엔디안(Little endian)

  • 낮은 주소에 데이터의 낮은 바이트(LSB, Least Significant Bit)부터 저장하는 방식
  • 작은 단위가 앞에 나옴
  • 대부분의 인텔 CPU계열에서 이 방식으로 데이터를 저장(대다수 데스크탑 컴퓨터)
  • 물리적으로 데이터를 조작하거나 산술 연산을 수행할 때에 적합
  • 인텔 기반의 시스템에서 소켓 통신을 할 때는 바이트 순서에 신경을 써서 데이터를 전달

 

 

'알고리즘' 카테고리의 다른 글

재귀 호출(recursive call)  (0) 2022.02.03
스택(Stack)  (0) 2022.02.03