반응형

엔디안이란?


컴퓨터의 메모리와 같은 1차원 공간에 여러개의 연속된 대상을 배열하는 방법을 뜻한다.

그중 바이트를 배열하는 방법을 바이트 순서(Byte Order)이라 한다.


리틀 엔디안은 메모리 시작 주소가 하위 바이트로부터 상위 바이트 방향으로 기록되는 바이트 오더 방식이고

빅 엔디안은 메모리 시작주소가 상위 바이트로부터 하위 바이트 방향으로 기록되는 바이트 오더 방식이다.


이때 인텔 계열을 사용하는 대부분 PC에서는 리틀 엔디안을 사용하고

네트워크 상에서 표준으로 이용되는 프로토콜은 네트워크 바이트 오더인 빅 엔디안이다.



이때 인텔 계열을 사용하는 대부분 PC에서는 리틀 엔디안을 사용하고

네트워크 상에서 표준으로 이용되는 프로토콜은 네트워크 바이트 오더인 빅 엔디안이다.





장단점


빅 엔디안은 사람이 숫자를 읽고 쓰는 방법과 같기 때문에 디버그를 편하게 해주는 경향이 있다. 그냥 0x12345678이 있으면 12 34 56 78로 표현되기 때문이다.


리틀 엔디안은 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요 없다는 장점이 있다.

예를들어 32비트 숫자인 0x2A는 리틀 엔디안으로 표현하면 2A 00 00 00이 되는데 이 표현에서 앞의 두 바이트 또는 한바이트만 떼어 내면 하위 16비트 또는 8비트를 바로 얻을 수 있는 장점이 있다.

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


제일 중요한 것은 네트워크 안에서이다.

데이터 전송을 할 때 엔디안 방식이 서로 다른 시스템끼리 통신하게 되면 전혀 다른 값을 주고받기 때문에 항상 조심해야한다.



아래 사이트를 통해 endian을 알아보자.

https://www.scadacore.com/tools/programming-calculators/online-hex-converter/







반응형