ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Little Endian, Big Endian
    보안 2019. 2. 20. 11:44

    공부하던 중 리틀 엔디안과 빅 엔디안에 대한 내용이 나와 글을 적게 되었다.


    결론부터 얘기하자면 리틀 엔디안은 메모리 끝에서부터 값을 채워넣는 방식이고, 빅 엔디안은 0번지부터 차례

    대로 값을 채워넣는 방식이다.

    예를 들어, 0x12345678 이라는 데이터가 있다면, 각각 아래와 같이 들어가게 된다.

    눈으로 그냥 보기에는 빅 엔디안이 보기도 쉽고 편할 것이다. 하지만 두 방식의 장단점이 있다.


    먼저 빅 엔디안은 우리가 수를 읽는 방식과 같은 순서로 값이 들어가기 때문에 디버깅이나 리버싱 작업을 더

    편하게 할 수 있다는 장점이 있다.

    두 번째로 우리가 수의 크기를 비교할 때 어떻게 하는지 생각해보자. 두 수를 비교할 때 어디서부터 보는가?

    당연히 높은 자리수부터 비교한다. 이땐 메모리 앞쪽에 높은 자리 수가 자리하는 빅 엔디안이 더 유리할 것이다.

    리틀 엔디안은 메모리 번지수를 뒤쪽으로 옮겨 계산해야 하기 때문이다.


    이번엔 두 수를 덧셈연산 할 때를 보자. 이 글을 보는 사람 중 높은 자리수부터 덧셈하는 사람은 없을 것이다.

    그럼 이 경우엔 낮은 자리수가 앞쪽에 위치하는 리틀 엔디안을 사용하는 것이 유리하다.


    즉, 비교 연산 시에는 빅 엔디안 방식이 빠르고, 계산 연산 시에는 리틀 엔디안 방식이 빠르다.


    빅 엔디안 방식은 대표적으로 네트워크 통신에서 사용되고, 리틀 엔디안 방식은 인텔 x86, x64 아키텍처에서 사용된다.

    '보안' 카테고리의 다른 글

    안티 드론 기법에 대해  (2) 2023.02.27
    MITRE ATT&CK 프레임워크에 대해  (0) 2023.02.13
    EME (Encrypted Media Extension)란?  (6) 2019.04.12
    블록체인 작업증명 C++로 구현하기  (0) 2019.02.19

    댓글

Designed by Tistory.