엔디언
엔디언(endian, endianness) 또는 바이트 순서는 숫자를 구성하는 바이트를 컴퓨터가 정렬하는 방법입니다.
메모리의 저장 공간은 인덱스 또는 주소를 가지고 있습니다. 각각의 바이트는 8비트 숫자(0x00
이상, 0xff
이하)를 저장할 수 있으므로, 그보다 큰 숫자에 대해서는 두 개 이상의 바이트가 필요합니다. 여러 개의 바이트를 정렬하는, 지금까지 가장 많이 쓰이는 방법은 모든 Intel 프로세서가 사용하는 리틀 엔디언입니다. 리틀 엔디언은 작은 단위부터 정렬하는 방식으로, 가장 작은 단위의 바이트가 맨 앞 혹은 앞쪽 주소를 차지합니다. 이 방식은 유럽식 날짜 표기(31-12-2050)에 대입할 수 있습니다.
자연스럽게, 빅 엔디언은 그 반대 순서를 나타내며 ISO 날짜 표기(2050-12-31)와 같습니다. 빅 엔디언은 "네트워크 바이트 순서"라고도 부르는데, 대부분의 인터넷 표준은 데이터의 저장 방식에 빅 엔디언을 요구하기 때문입니다. 이는 표준 UNIX 소켓 단계부터, 표준화 웹 이진 데이터 구조까지 올라갑니다. 또한, 68000 시리즈와 PowerPC 마이크로프로세서를 사용하는 구형 Mac 컴퓨터는 빅 엔디언을 사용했었습니다.
다음은 숫자 0x12345678
(10진수 305 419 896)으로 나타낸 예제입니다.
- 리틀 엔디언:
0x78 0x56 0x34 0x12
- 빅 엔디언:
0x12 0x34 0x56 0x78
- 혼합 엔디언(구형, 매우 드묾):
0x34 0x12 0x78 0x56