티스토리 뷰

C C++/메모장

Big Endian / Little Endian

개발하는꼬물이 2019. 8. 29. 17:35

네트워크 프로그래밍을 할 때 자주 쓰이는 개념인데, 

헷갈려서 자꾸 찾아보게되서.. 간략하게 정리 ! 




Big Endian

메모리의 시작(하위)주소에 상위 바이트의 데이터부터 저장하는 방식

주로 UNIX 시스템인 RISC 프로세스 계열에서 사용





Little Endian

메모리의 시작(하위)주소에 하위 바이트의 데이터부터 저장하는 방식

주로 인텔(intel) 프로세스 계열, Window에서 사용





데이터를 저장하는 방식이 CPU에 따라 다르기 때문에

 네트워크를 통해 데이터를 전송할 때는 Big Endian을 기준으로 하며,

C++에서 데이터 저장 방식을 변경하고자 할 때는 아래의 함수를 사용하면 된다.


Network to Host (Big Endian → Little Endian)  : ntohl(), ntohs()

Host to Network (Little Endian → Big Endian)  : htonl(), htons()


댓글