반응형
big-endian과 little-endian
big-endian과 little-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 |
반응형
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
파이썬에서 실수형(float)의 세계 (1) | 2025.04.23 |
---|---|
파이썬에서 바이트열을 정수로 변환 (2) | 2025.04.21 |
파이썬 오류 메시지, 이해 방법 (3) | 2025.04.19 |
[웹 API] JSON(JavaScript Object Notation)은? (32) | 2024.03.15 |
[웹 API] JSON 객체와 파이썬 딕셔너리의 유사점과 차이점 (46) | 2024.03.14 |