***엔디안 설명시 가장 기본이되는 단어 MSB와 LSB***
- MSB (Most Significant Byte): '최상위 바이트'라는 뜻으로, 가장 큰 자릿수를 담당하는 바이트를 지칭하는 말이다. 예를 들어, 0x12345678에서는 12를 담고 있는 바이트가 MSB이다.
-
LSB (Least Significant Byte): '최하위 바이트'라는 뜻으로, 가장 작은 자릿수를 담당하는 바이트를 지칭하는 말이다. 예를 들어, 0x12345678에서는 78을 담고 있는 바이트가 LSB이다.
이제 이 새로운 정의를 알았으니 BE와 LE를 다음과 같이 정의할 수 있습니다:
빅 엔디안은 데이터를 MSbyte에 먼저 저장 리틀 엔디안은 데이터를 MSbyte에 마지막에 저장
예를 들어 유니코드 문자(휴대폰, PC, TV 등 모든 곳에서 문자를 렌더링하는 데 사용되는 문자 집합!)는 바이트 순서 표시 또는 BOM이라고 하는 특수 문자 바이트 시퀀스(U+FEFF BYTE ORDER MARK)를 전달해야 합니다. BOM은 몇 가지 용도로 사용됩니다.
BOM은 시스템을 인식시킵니다:
수신 스트림이 유니코드임을 인식합니다.
그 중 유니코드 문자 인코딩이 사용됩니다.
들어오는 스트림의 엔디안 순서.
일부 프로그래밍 언어에서는 어떤 바이트 순서 순서가 사용되는지 자세히 설명하도록 요구하기도 합니다. 따라서 한 프로그램에서 원하는 바에 따라 BE 또는 LE로 숫자를 사용, 전송 및 수신할 수 있습니다. Swift(iOS 개발에 사용되는 언어)가 그 예입니다.
애초에 이것이 왜 문제가 될까요?
서로 다른 프로토콜이 등장했다가 나중에 서로 상호 작용해야 하는 상황이 발생했기 때문입니다. 예를 들어 BE는 모든 네트워크 프로토콜에서 지배적인 순서이며, 이를 네트워크 순서라고 합니다. 반면에 대부분의 PC는 리틀 엔디안입니다.
'개발 과 보안' 카테고리의 다른 글
[C언어]32bit Single Precision, 64bit Double Precision (단정밀도와 배정밀도) (0) | 2024.03.09 |
---|---|
[C언어]데이터 자료형 + 변수와 상수 (0) | 2024.03.09 |
[c언어]정보의 단위 (0) | 2024.03.09 |
C 언어&자바 에서의 실행 파일 생성 과정 (0) | 2024.03.02 |
[JAVA] 프로그래밍의 전체적인 개념 (0) | 2024.03.02 |