×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,184,607명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형

엔디안이란?


컴퓨터의 메모리와 같은 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/







반응형