hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

[컴퓨터 SW] Byte Ordering
CS/OS

[컴퓨터 SW] Byte Ordering

이 글은 포스텍 김종 교수님의 컴퓨터SW시스템개론(CSED211) 강의를 기반으로 재구성한 것입니다.

 이 글에서는 byte ordering에 대해 살펴본다.

 * LSB : Least Significant Byte, 제일 작은 byte를 의미한다.

 

Byte Ordering

 모든 컴퓨터는 word라는 단위로 메모리에 접근한다. 32-bit 컴퓨터의 경우 4 byte, 64-bit 컴퓨터의 경우 8 byte이다. byte ordering이란 컴퓨터가 메모리에 값을 저장하는 방식이다. 크게 Big Endian과 Little Endian으로 나뉜다.

 

 주소값은 0부터 시작하며, 값이 커질수록 higher address이다.

memory의 구조

 

 

Big Endian

 LSB가 high address에 저장되는 방식이다. Sun, PPC Mac, Internet, Network 등에서 사용한다.

 

 예를 들어 0x12345678이 저장된다고 하자. 여기서 byte는 16진수 2개를 의미하므로 0x12345678은 12, 34, 56, 78로 나뉜다. 이 때 LSB는 제일 작은 byte인 78을 의미하며, big endian의 경우 LSB가 highest address에 저장되므로 아래 그림와 같이 메모리에 값이 저장된다.

big endian에서 메모리에 값을 저장하는 방법

big endian은, 사람이 쓰는 방식과 동일하게 큰 단위의 숫자가 앞에 온다고 생각하면 외우기 싶다.

 

 

Little Endian

 LSB가 low address에 저장되는 방식이다. x86 등 intel 계열에서 사용한다.

 

 예를 들어 0x12345678이 저장된다고 하자. 여기서 byte는 16진수 2개를 의미하므로 0x12345678은 12, 34, 56, 78로 나뉜다. 이 때 LSB는 제일 작은 byte인 78을 의미하며, little endian의 경우 LSB가 lowest address에 저장되므로 아래 그림와 같이 메모리에 값이 저장된다.

little endian에서 메모리에 값을 저장하는 방법

 

 

들 수도 있는 의문점

 little endian을 보며 한 가지 의문점이 들 수도 있다. 'LSB가 low address에 저장되면, 87654321식으로 저장되는 게 맞지 않나?' 

 컴퓨터의 최소 단위는 1byte이며, byte는 16진수 2개로 표현된다. 각 endian의 정의는 Least Significant Byte가 해당 주소에 저장되기 때문에 16진수 2개씩 묶여서 해당 메모리에 값이 저장된다.

 

 

 

 

 

 

 

저작자표시 (새창열림)

'CS > OS' 카테고리의 다른 글

[컴퓨터 SW] Storage - RAM & Disk  (0) 2023.06.14
[컴퓨터 SW] Buffer Overflow  (0) 2023.06.11
[컴퓨터 SW] Array/Structure/Union의 할당과 접근  (0) 2023.06.11
[컴퓨터 SW] Calling Convention  (0) 2023.06.10
[컴퓨터 SW] Bit를 이용한 컴퓨터의 정보 표현  (2) 2023.06.07
    hyelie
    hyelie

    티스토리툴바