https://m.blog.naver.com/aaasssddd25/220904471846

안녕하세요.

칸입니다.

오늘은 저번에 말씀드렸듯이 리틀엔디언과 빅엔디언에 대해

정리해보도록 하겠습니다.

0. 들어가기에 앞서..

저 또한 배우는 입장이라 제가 작성한 글이 100% 맞는 것은 아닙니다. [정리]가 붙어있는 글들은 제가 공부한 내용을 정리할 겸 올리는 글입니다. 참고해주세요. 또한 본문에 활용되는 대부분의 예제는 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.

1. 바이트 오더링(Byte Ordering)

바이트 오더링이란 쉽게 생각해서 데이터를 저장하는 방식을 말합니다. 바이트 오더링 방식에는 크게 2가지가 있습니다. 그 2가지는 바로 오늘 알아볼 **빅엔디언(Big Endian)**과 리틀 엔디언(Little Endian) 방식입니다.

[그림 1.1]

[그림 1.1]을 보면 총 4개의 크기가 다른 자료형이 있습니다. 이를 각 엔디언 방식에 따라서 데이터를 어떤식으로 저장하는지 알아보겠습니다.

[표 1.1]

※ 참고

'a'의 ASCII code는 0x61, NULL 문자의 ASCII code는 0x00

[표1.1]을 자세히 보면 BYTE 타입의 변수 b를 저장할때에는 차이가 없지만 Size가 2바이트 이상인 자료형의 경우 두 표기법에 차이가 나기 시작합니다.

빅엔디언 방식은 데이터를 저장할 때 사람이 보는 방식과 동일하게, 리틀 엔디언 방식은 역순으로 데이터를 저장합니다. 즉, 저장되는 바이트의 순서가 뒤집어져 있습니다.

쉽게 생각해서