단위가 1byte이다.
직관적인 방벙이다. 최상위 바이트를 먼저 저장하고 그 순서로 아래로 저장한다.
가장 높은 자리의 바이트들이 먼저 저장된다.
0x12345678 ->
12 34 56 78
big endian과 반대로 최하위 바이트를 먼저 저장하고 그 순서로 위로 저장한다.
x86 계열의 프로세서들은 리틀 엔디안 표현을 사용한다.
0x12345678 ->
78 56 34 12
endian은 컴퓨터 시스템에서 물리 데이터(디스크)나 네트워크를 통해서 이진 데이터가 송신될 때,
이를 고려해 주어야 한다.
(아스키 데이터의 경우 단일 바이트 이므로 엔디안은 문제가 안된다.
하지만 UNICODE와 같은 멀티 바이트 문자 세트의 출현에 따라 텍스트 데이터 에서도 이를 고려해야 한다.)
모든 TCP/IP 헤더들은 데이터를 Big endian 형식으로 저장한다.(network byte order)
TCP/IP 라이브러리는 C로 하여금 엔디안 관련 함수들을 지원한다.
htonl() :host endian->network endian
ntohl() :network endian->host endian
(사실 위 두 함수는 같은 역할을 수행한다.)
이는 W.Richard Steven의 'UNIX Network Programming' 에서 상세하게 기술되어 있다.
위와 같은 엔디안 형식 변환은
486프로세서는 32비트 레지스터의 바이트를 역순으로 재배치하는 명령인 BSWAP을 추가하였다.
이 명령어는 16비트 레지스터에서는 사용될 수 없다.
하지만 XCHG 명령어를 통해 두개의 8비트 레지스터로 쪼개어 질 수 있는
16비트 레지스터의 바이트를 역순으로 재배치 할 수 있다.
(2바이트임으로 AH, AL 레지스터의 순서를 교체 시켜주면 된다.)