Linuxpia/웹 프로그램

big-endian과 little-endian

Linuxpia4U 2025. 4. 20. 21:37
반응형

big-endian과 little-endian

big-endianlittle-endian은 데이터를 여러 바이트로 저장할 때의 바이트 순서(byte order)를 말하는 컴퓨터의 표현 방식입니다.


쉽게 말하면, 큰 자릿값을 앞에 저장할지, 뒤에 저장할지를 결정하는 방식입니다.


✅ 예를 들어 설명하기

10진수 1024는 16진수로 0x0400입니다.
2바이트(16비트)로 표현할 때 아래와 같이 저장할 수 있습니다.

 

방식 저장 순서 (16진수)  설명
big-endian 04 00 큰 값(상위 바이트)이 앞
little-endian 00 04 작은 값(하위 바이트)이 앞

✅ 용어 풀이

  • Endian: 바이트의 끝(end)을 어디로 할지 정하는 방식
  • Big-endian: 큰 바이트(상위 바이트)가 앞쪽에 위치
  • Little-endian: 작은 바이트(하위 바이트)가 앞쪽에 위치

✅ 왜 이런 차이가 생겼을까?

  • 컴퓨터 아키텍처(하드웨어 설계)마다 데이터를 저장하는 방식이 다르기 때문입니다.
  • 예를 들어,
    • 인텔 CPU: little-endian 사용
    • 일부 네트워크 프로토콜: big-endian 사용 (예: TCP/IP)

✅ 실생활 비유

10,000원을 "만원"이라고 할 때,

  • big-endian은 "만 원" 순서로 말하는 것 (큰 단위 → 작은 단위)
  • little-endian은 "원 만" 순서로 말하는 것 (작은 단위 → 큰 단위)

즉, 읽거나 저장하는 순서를 반대로 보는 것입니다.


✅ 파이썬 예시

num = 1024

# big-endian
big_bytes = num.to_bytes(2, byteorder='big')
print(big_bytes)  # b'\x04\x00'

# little-endian
little_bytes = num.to_bytes(2, byteorder='little')
print(little_bytes)  # b'\x00\x04'

✅ 정리

 

구분  big-endian little-endian
바이트 순서 상위 바이트 → 하위 바이트 하위 바이트 → 상위 바이트
사용 예 네트워크 프로토콜 인텔 CPU
예시 (0x1234) 12 34 34 12

 

반응형