엔디안

Ahn9807 (토론 | 기여)님의 2023년 4월 5일 (수) 10:45 판 (새 문서: 분류: 정보 표현 == 개요 == 여러 바이트에 걸쳐 있는 프로그램 객체들을 "객체의 주소의 지정"과 "바이트의 정렬" 기준을 통일시켜야 된다. 대부분의 객체의 주소는 사용된 바이트의 최소 주소로 결정되지만, 바이트들을 정렬하는 데에는 리틀 엔디안 방식과 빅 엔디안 방식으로 나뉜다. 섬네일|가운데|500픽셀 == MSB와 LSB == *MSB(Most Significant...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

여러 바이트에 걸쳐 있는 프로그램 객체들을 "객체의 주소의 지정"과 "바이트의 정렬" 기준을 통일시켜야 된다. 대부분의 객체의 주소는 사용된 바이트의 최소 주소로 결정되지만, 바이트들을 정렬하는 데에는 리틀 엔디안 방식과 빅 엔디안 방식으로 나뉜다.

바이트 순서.png

MSB와 LSB

  • MSB(Most Significant Byte)는 메모리의 표현중 가장 중요한 비트 즉 가장 상위의 비트를 말한다.
  • LSB(Least Significant Byte)는 메모리의 표현중 가장 덜 중요한 비트 즉 가장 하위의 비트를 말한다.

예) 0x11110000 에서 0은 가장 덜 중요한 비트 LSB이고 1은 가장 중요한 비트 MSB이다.

리틀 엔디안

Little Endian 방식은 LSB가 가장 작은 주소를 가지는 방식이다.

빅 엔디안

Big Endian 방식은 MSB가 가장 작은 주소를 가지는 방식이다.

순서가 문제가 되는 경우

  1. 데이터가 이기종 컴퓨터 사이에서 전달 될 경우 (네트워크)
  2. 사람이 직접 메모리 내용을 살펴볼 경우
  3. 프로그램이 정상적인 타입 체계를 회피할 경우 (직접 메모리를 다룰 경우)