바이너리 데이터를 저장하는 방식, 빅 엔디안과 리틀 엔디안

Running boy·2023년 8월 14일
0

컴퓨터 공학

목록 보기
31/36

컴퓨터는 데이터를 2진 데이터, 즉 바이너리 데이터 형태로 다룬다.
하지만 CPU마다 그 처리 방식이 약간 다르다.
CPU가 바이너리 데이터를 처리하는 두가지 방식에 대해 정리한다.

모든 예시는 305419896을 16진법으로 표현한 0x12345678로 한다.

빅 엔디안(Big Endian)

낮은 주소에 높은 바이트부터 저장하는 방식을 뜻한다.

빅 엔디안

byte[] bytes = // 바이너리 변환
Console.WriteLine(bytes[0]); // 0x12
Console.WriteLine(bytes[1]); // 0x34
Console.WriteLine(bytes[2]); // 0x56
Console.WriteLine(bytes[3]); // 0x78

우리에게 많이 익숙한 방식이다.
SPARC을 포함한 대부분의 RISC CPU 계열에서 이 방식으로 데이터를 저장한다.


리틀 엔디안(Little Endian)

낮은 주소에 낮은 바이트부터 저장하는 방식을 뜻한다.

리틀 엔디안

byte[] bytes = // 바이너리 변환
Console.WriteLine(bytes[0]); // 0x78
Console.WriteLine(bytes[1]); // 0x56
Console.WriteLine(bytes[2]); // 0x34
Console.WriteLine(bytes[3]); // 0x12

바이트 단위로 빅 엔디안과 반대로 저장된다.
인텔 CPU 계열에서 이 방식으로 데이터를 저장한다.


참고 자료
TCP School - 바이트 저장 순서

profile
Runner's high를 목표로

0개의 댓글