Endianness

: 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상(Byte)가 저장되는 순서(Byte order)

Memory Model의 이해

데이터의 최소 단위는 1bit, 하지만 메모리의 데이터 최소 처리 단위는 32bit (4Byte), 64bit (8Byte)이다.

즉, 8bit(1Byte)씩 4개, 8개를 저장하고 처리해야 한다.

32bit(4Byte, 16진수 8개) 운영체제의 경우, 4,294,967,296(4GB) 개의 1Byte를 메모리 주소값 가진다.

MSB, LSB

MSB(Most Significant Bit): 2진수(bit)의 가장 큰 자릿수

LSB(Least Significant Bit): 2진수(bit)의 가장 작은 자릿수

MSB와 LSB는 데이터를 비트(Bit) 단위로 놓고 봤을 때 사용되는 용어

Significant의 의미는, 해당 비트가 숫자 값의 크기에 얼마나 큰 영향을 미치는지를 나타냄

Big-Endian

  • 가장 큰 단위(MSB)가 가장 낮은 메모리 주소에 먼저 저장
  • 네트워크와 같이 bit 단위의 연산을 기본으로 한다면, 대부분 Big Endian 방식

Little-Endian

  • 가장 작은 단위(LSB), 가 가장 낮은 메모리 주소에 먼저 저장
  • 인간이 사용하는 선형 방식과는 반대, 대부분의 인텔 CPU 계열에서 사용

비교

Big-Endian 방식은, 숫자 비교와 디버깅이 쉽다

Little-Endian 방식은, 연산 형변환이 쉽다