Endian 은 Big-Endian과 Little-Endian으로 구분이 된다.
아래는 두 방식의 차이를 간단히 비교한 표이다.
아래는 두 방식의 차이를 간단히 비교한 표이다.
종류 | 0x1234의 표현 | 0x12345678의 표현 |
---|---|---|
빅 엔디언 | 12 34 | 12 34 56 78 |
리틀 엔디언 | 34 12 | 78 56 34 12 |
*인텔 계열은 Little-Endian 을 사용하는데 네트워크를 통해 데이터 송수신시에
Big-Endian 측과 통신을 하면 이상한(?) 데이터를 받거나 문제를 발생시키기 때문에
엔디안 변환이 필요하다.
/* C# Endian Converter */ private void EndianConverter(byte[] val) { int len = val.Length; byte[] tmp = new byte[val.Length]; int i, j; for (i = 0, j = len; i < len; i++, j--) { tmp[i] = val[j - 1]; } for (i = 0; i < len; i++) { val[i] = tmp[i]; } } private void EndianConverter(byte[] val, int startIndex, int count) { //int len = val.Length; byte[] tmp = new byte[count]; int i, j; j = startIndex + count; for (i = 0; i < count; i++, j--) { tmp[i] = val[j - 1]; } for (i = 0; i < count; i++, j++) { val[j] = tmp[i]; } }
댓글 없음:
댓글 쓰기
안녕하세요 :)