엔디언, 빅엔디언, 리틀엔디언

Jmnote bot (토론 | 기여)님의 2017년 7월 19일 (수) 03:33 판 (봇: 자동으로 텍스트 교체 (-==참고 자료== +==참고==))
endianness
엔디언
big-endian, little-endian
빅엔디언, 리틀엔디언

1 엔디언

  • Byte Order과 연관된 개념
  • 엔디언은 메모리의 배열하는 방법
  • 메모리 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법

2 빅엔디언, 리틀엔디언

  • 빅 엔디언 - 메모리 증가 방향과 동일하게 저장
  • 리틀 엔디언 - 메모리 증가 방향과 반대로 저장

3 32비트 정수 예시

10진수 16진수 빅 엔디언 리틀 엔디언
255 0xFF 00 00 00 FF FF 00 00 00
4660 0x1234 00 00 12 34 34 12 00 00
168496141 0x0A0B0C0D 0A 0B 0C 0D 0D 0C 0B 0A
305419896 0x12345678 12 34 56 78 78 56 34 12

 

 

4 C언어로 실습

#include <stdio.h>

void main()
{
    int a = 255;
    char *p = (char *)&a;
    int i;

    for (i = 0; i < sizeof(a); i++)
    {
        printf("%02x ", (unsigned char)*p++);
    }
}
// ff 00 00 00 
// 리눅스는 실제 값과 메모리 순서값이 반대임 → 리틀엔디언

5 같이 보기

6 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}