And Brain said,

엔디언(Endian) 행진곡. 0 - 멀티바이트의 질서있는 행진 본문

IT/엔디언 행진곡

엔디언(Endian) 행진곡. 0 - 멀티바이트의 질서있는 행진

The Man 2023. 6. 18. 15:30
반응형

엔디언(Endian) 행진곡

0. 멀티바이트의 질서있는 행진
1. 빅이냐 리틀이냐 그것이 문제로다
2. Rust로 다시 쓰여지다
3. 제1장: Network
4. 제2장: FIle
5. 행진이 끝나고

예제 코드

 
여기 멀티바이트 데이터들이 행진을 준비하고 있습니다. 그들은 메모리 도로 위에 서서, 시작을 기다리고 있습니다. 한쪽 끝에서 다른 쪽 끝까지, 그런데 우리는 문득 궁금증이 생깁니다. 이들은 대체 어떤 순서로 메모리에 위치할까요? 엔디언(Endianness, 줄여서 Endian)은 바로 이 데이터 바이트들이 어떤 순서로 메모리에 위치할지를 결정하는 규칙입니다.

엔디언은 크게 두 가지 유형이 있습니다. 빅 엔디언과 리틀 엔디언입니다. 두 방식 모두 동일한 멀티바이트 데이터에 적용되지만, 데이터 바이트들이 메모리에 위치하는 방식은 서로 상이합니다.

빅 엔디언 방식에서는 가장 중요한 바이트, 즉 '가장 큰' 바이트가 먼저 행진을 시작합니다. 이것은 우리가 페이지의 상단에서 아래로 읽는 것과 비슷하며, 숫자를 읽을 때 가장 중요한 자릿수부터 시작하는 것과 유사합니다.

하지만, 리틀 엔디언 방식에서는 이 모든 것이 반대로 됩니다. 가장 '작은' 바이트부터 행진을 시작합니다. 이 방식은 마치 책의 페이지를 뒤에서부터 읽는 것과 같습니다. 메모리에 데이터를 역순으로 저장하는 것이죠.

두 방식 모두 자신만의 장단점이 있습니다. 빅 엔디언은 데이터를 읽고 쓰는 것이 직관적이지만, 반면에 리틀 엔디언은 하드웨어 수준에서 데이터를 처리하기 더 쉽습니다. 따라서, 어떤 엔디언 방식이 더 우월하다고 단정짓기는 어렵습니다. 사용하는 작업과 목표에 따라 선택할 엔디언 방식이 달라질 수 있습니다.

이제 우리는 엔디언에 대해 알게 되었습니다. 엔디언은 메모리 속에서 이루어지는 멀티바이트 데이터들의 질서있는 행진입니다. 이것은 컴퓨터가 정보를 처리하는 방식의 핵심적인 부분으로, 다음번에는 빅 엔디언과 리틀 엔디언이 어떻게 서로 다른 방식으로 데이터를 처리하는지, 그리고 왜 이런 차이가 중요한지에 대해 더 자세히 알아보도록 하겠습니다.
 
앞으로 우리는 엔디언의 개념에 대해 더 자세히 알아본 후 Rust를 이용한 실제 예제 코드들까지 작성해 볼 것입니다. 자 그럼, 엔디언의 세계로 함께 행진해 보시겠습니까?
 
 

다음으로 ->

Thanks for watching, Have a nice day.

 

References

http://www.tcpschool.com/c/c_refer_endian

반응형
Comments