본문 바로가기
반응형

바이트순서2

[C][C++] 배열을 활용한 바이트 스왑 예제 바이트 배열 순서를 바꾸는 함수를 구현하게 되어 예제로 공유하게 되었다. 비트 연산을 활용한 바이트 스왑에 관한 글은 이미 많기 때문에 생략하고 배열을 활용할 것이다. 배열을 활용한 바이트 스왑의 장점은 데이터의 크기와 상관없이 하나의 함수로 스왑이 가능하다는 점인 거 같다. Byte Swap 함수 단순하게 기존 배열에 들어있던 데이터를 tmpBuf에 역순으로 저장하고, tmpBuf를 다시 기존 배열에 복사한다. void SwapByte(char* buf, int msgNum) { char tmpBuf[100]; int num = msgNum - 1; for (int i = num; i >= 0; i--) { tmpBuf[i] = buf[num - i]; } memcpy(buf, tmpBuf, msgNu.. 2022. 4. 7.
[개념] 빅 엔디안 & 리틀 엔디안 (Big-Endian & Little-Endian) 비트(bit)란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위이다. 바이트(byte)는 한 문자를 표한할 수 있는 최소 단위로 8비트로 구성되어있다. (1Byte = 1Bit) 컴퓨터는 데이터를 바이트 단위로 저장하고 연속되는 바이트를 저장하는 순서가 바로 바이트 배열 순서(Byte Order)이다. 데이터는 낮은 주소에서 높은 주소 차례로 저장되지만 이 데이터가 저장되는 순서에 따라 빅 엔디안과 리틀 엔디안이 나뉜다. 빅 엔디안 Big-Endian 상위 비트부터 바이트 단위로 저장하는 방식으로 평소 사람이 숫자를 사용하는 방식과 같은 방식이다. 큰 자리 수부터 저장하기 때문에 숫자 비교에 유리하고 저장된 순서 그래도 읽을 수 있어 이해가 용이하다. 리틀 엔디안 Little-Endian 하.. 2022. 3. 28.
반응형