OnewayK 2015. 8. 20. 14:51

1. 바이트 오더링

- 데이터를 저장하는 방식을 의미

- 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian)으로 나뉨


1-1. 리틀 엔디언 & 빅 엔디언

 BYTE b = 0x12;

 WORD w = 0x1234;

 DWORD dw = 0x12345678;

 char str[] = "abcde";


TYPE

Name 

SIZE 

빅 엔디언 

리틀 엔디언 

BYTE 

[12] 

[12] 

WORD 

[12][34] 

[34][12] 

DWORD 

dw 

[12][34][56][78] 

[78][56][34][12] 

char [] 

str 

[61][62][63][64][65][00]

[61][62][63][64][65][00] 


구분

빅 엔디언 

리틀 엔디언 

장점

 사람이 보기에 직관적

 산술 연산과 데이터의 타입이 확장/축소 될 때 더욱 효율적 

주로 사용되는 곳

 대형 UNIX 서버에 사용되는 RISC 계열의 CPU 

 네트워크 프로토콜

 Intel x86 CPU 

특징

 사람이 보는 방식과 동일하게 앞에서 부터 순차적으로 저장 

 - 데이터를 저장할 때 역순으로 저장

 - 바이트 자체는 정상적인 순서로 저장

 - 멀티바이트(multi-bytes)인 경우 각 바이트가 역순으로 저장

 - str 문자열은 Endian 형식에 상관 없이 동일 (char 배열이므로 각 바이트를 연속해서 저장)