반응형
byte order는 바이트를 처리하는 순서이다.
그 처리 순서는 두가지가 있고 Little Endian 과 Big Endian 이 있다.
본인은 CS 지식이 부족하여 궁금하였는데
char 형 배열은 엔디안 처리가 필요 없다고 하여 Chat GPT 에게 물어보았다.
질문은 "서로 다른 엔디안을 사용하고 있는 시스템 간에 char 형 배열을 보낸다고 하면 엔디안 처리가 필요해?" 였다.
서로 다른 엔디안(예: 리틀 엔디안 시스템과 빅 엔디안 시스템)을 사용하는 시스템 간에 char 형 배열을 전송할 경우, 일반적인 경우 char(1바이트) 데이터는 엔디안의 영향을 받지 않기 때문에 추가적인 변환이 필요하지 않습니다.이유
엔디안 변환이 필요한 경우하지만, 만약 char 배열이 여러 바이트로 구성된 멀티바이트 데이터 (예: int, long long, float 등)를 포함하고 있다면, 그런 경우는 주의가 필요합니다:
|
어쨌든 필요 없다는 의미였지만 정확하게 이해가 되지 않았다.
결국 구글을 뒤져보니 좋은 글이 있었다.
https://blog.naver.com/jst000007/150083170423
결국 CPU 가 처리하는 하드웨어차원 문제로 엔디안 방식이 다르다.
char 형 배열의 경우 char 가 결국 1byte 이고 이 1byte가 메모리에 그대로 들어간다.
그러나 멀티바이트 즉, 2byte, 4byte, 8byte 의 경우에는 시작이 어디인가 문제이다.
그래서 배열의 문제가 아니다.
1 byte 인 자료형들은 처리해줄 필요가 없고
멀티바이트 일 경우에만 처리가 필요하다.
반응형
'Programming > C' 카테고리의 다른 글
가변길이 구조체에 대하여... (flexible array member) (1) | 2025.06.26 |
---|---|
Linux c socket 통신 테스트 (recv 할 데이터가 더 클 경우) (0) | 2025.04.14 |
[ncurses] (1) ncurses 설치 (CentOS, Redhat, Rocky) (0) | 2024.02.23 |