본문 바로가기
C.E/SystemProgramming

[시스템프로그래밍]Byte Ordering

by 책읽는구리 2008. 10. 20.
반응형

엔디안은 메모리에 저장되는 바이트 순서와 관련이 있다.
예를 들어 0x12345678라는 데이터를 저장한다고 한다면

빅-엔디안에서는 아래와 같이 메모리의 낮은 주소번지에서부터 높은 주소번지로 저장이 된다.

 낮은번지 ----------------> 높은번지

0x12

0x34

0x56

0x78


하지만 리틀-엔디안에서는 빅-엔디안과 반대로 저장을 하게된다.

 낮은번지 ----------------> 높은번지

0x78

0x56

0x34

0x12


 보통 빅-엔디안은 매킨토시에 사용되는 모토롤라 CPU, 리눅스, JVM이 이 방법을 채택하고 있으면 리틀-엔디안은 우리가 보통 사용하고 있는 Intel계열의 CPU가 이 방법을 사용하고 있다.

빅-엔디안은 사람이 보기에 매우 직관적이다. 하지만 리틀-엔디안도 매우 강력한 장점을 가지고 있다. 예를 들어 2바이트을 4바이트로 확장한다고 한다면

빅-엔디안에서는

0x12

0x34

0x00

0x00

0x12

0x34


위의 그림과 같이 기존의 값을 뒤로 밀어버려야지 제대로된 값을 가진 형확장이 이루어진다.

하지만 리틀-엔디안에서는

0x34

0x12

0x34

0x12

0x00

0x00


위 그림처럼 원래 뒤집혀 있기 때문에 그냥 뒤에 추가만 해주면 형확장이 이루어진다.

반응형

댓글