엔디안이란?

엔디안(Endian)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 합니다. 엔디안은 보통 큰 단위가 앞에 나오는 빅 엔디안(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디안(Little-endian)으로 나눌 수 있으며, 두 경우에 속하지 않거나 둘을 모두 지원하는 것을 미들 엔디안(Middle-endian)이라 부르기도 합니다.


사람이 숫자를 쓰는 방법과 같이 큰 단위의 바이트가 앞에 오는 방식이 빅 엔디안입니다.


빅 엔디안리틀 엔디안
0x123412 3434 12
0x1a3ecd1a 3e cdcd 3e 1a

16진수는 2개가 1바이트이므로 묶어서 계산합니다.

장단점

빅 엔디안은 소프트웨어의 디버그를 편하게 해 주는 경향이 있습니다. 사람이 숫자를 읽고 쓰는 방법과 같기 때문입니다.

반대로 리틀 엔디언은 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요 없다는 장점이 있습니다. 예를 들어, 32비트 숫자인 0x2A는 리틀 엔디언으로 표현하면 2A 00 00 00이 되는데, 이 표현에서 앞의 두 바이트 또는 한 바이트만 떼어 내면 하위 16비트 또는 8비트를 바로 얻을 수 있습니다.

반면 32비트 빅 엔디언 환경에서는 하위 16비트나 8비트 값을 얻기 위해서는 변수 주소에 2바이트 또는 3바이트를 더해야 합니다. 


'공부' 카테고리의 다른 글

백업 vs 아카이브 차이점  (0) 2019.01.19
절차지향 VS 객체지향  (0) 2018.12.22
엔디안(Endian)이란?  (0) 2018.07.15
이진법, 16진법, 비트와바이트, 인코딩  (1) 2018.07.12
마이크로소프트 REST API 가이드라인  (0) 2017.03.14
칸반  (0) 2017.03.13

+ Random Posts