더북(TheBook)

4.2.2 엔디언 호환성

여러 바이트로 이루어진 숫자를 저장할 때 시중의 모든 CPU가 같은 순서로 저장하는 것은 아니다. 어떤 플랫폼이 바이트를 어떤 순서로 저장하는지 그 방식을 일컬어 플랫폼의 엔디언(Endianness)이라 한다. 엔디언은 크게 리틀 엔디언(Little-endian), 빅 엔디언(Big-endian)으로 나뉜다. 리틀 엔디언 플랫폼에선 여러 바이트로 구성되는 숫자를 가장 작은 자리의 바이트부터 먼저 기재한다. 예를 들어 0x12345678을 값으로 하는 정수를 0x01000000 번지에 저장한다고 하면 그림 4-1처럼 된다.

 

▲ 그림 4-1 리틀 엔디언 0x12345678

 

최하위 바이트2 0x78이 메모리 앞부분에 저장되었다. 이 부분이 숫자에서 가장 ‘작은’ 부분이며 이 방식을 ‘리틀’ 엔디언이라 부르는 이유가 바로 이 때문이다. 리틀 엔디언 플랫폼으로는 인텔의 x86, x64, 애플의 iOS 계열 하드웨어 등이 있다.

빅 엔디언은 반대로 최상위 바이트3를 가장 먼저 저장한다. 같은 숫자를 같은 번지에 기록할 때 그림 4-2와 같이 된다.

 

▲ 그림 4-2 빅 엔디언 0x12345678

 


 

2  역주 The least significant byte, LSB로 줄여 쓴다.

 

3  역주 The most significant byte, MSB로 줄여 쓴다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.