-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
엔디안 질문 드립니다
22.12.05 21:16 작성 조회수 272
0
공부하던 도중에 메모리에 적재되는 순서가 이상한 거 같아서 만들어서 확인해봤습니다.
확인 결과 4바이트는 순서가 정확한데 8바이트로 한번에 읽을 때 왜 저런 형태가 되는 지 궁금합니다.
추가로 item 구조체에 num값과 m 값을 메모리에 적재할 때 0x0000 0003 / 0x0000 0001 이렇게 적재 됐는데 리틀 엔디안에 의하면 03 00 0000 / 01 00 0000 으로 표기돼야하는 거 아닌가 싶은데 제가 무엇을 잘못 이해하고 있는 걸까요?
답변을 작성해보세요.
0
0
Rookiss
지식공유자2022.12.05
리틀 엔디언 환경에선 순서가 뒤바뀌기 때문입니다.
진짜 데이터에 들어간 값은 낮은 주소부터 시작해서 01 00 00 00 입니다.
즉 바이트 단위로 보는게 실제 물리적으로 저장된 값과 일치한다는 얘기입니다.
그 외 2, 4, 8 등으로 묶어서 보면, 2, 4, 8바이트 씩 묶어서 판별하는데
리틀 엔디언 특성상 데이터가 뒤집혀 있기 때문에, 이를 2, 4, 8 바이트 단위로 뒤집어서 읽게 됩니다.
즉 01 00 00 00 이걸 4바이트로 묶어서 보면 뒤집혀서 0x00000001로 인식해야 맞는 것이죠.
답변 2