ByteOrder, LittleEndian, BigEndian with Honeywell Webs8000

개요

Little-Endian, Big-Endian


CPU가 내부적으로 데이터를 처리하는 순서에따라서 바이트오더가 나뉘어진다. 
바이트오더는 Little-Endian과 Big-Endian으로 나뉘어진다.

Little-Endian
 - intel X86계열 CPU
 - AMD계열 CPU
 - EDC계열 CPU

Big-Endian
 - IBM
 - ARM
 - Motorola


Honeywell Webs8000 CPU


ARM@Cortex-a8 즉 Big-Endian을 기본으로 사용함을 알 수 있다. 
<Honeywell Webs8000 CPU Spec>

그렇다면 little-Endian을 사용하는 장비로부터 정상적인 데이터를 취득하기위해서는
바이트오더 변경이 필요하다. 


Change ByteOrder in JAVA


1
2
3
4
5
6
7
8
public static int getBigEndian(byte[] v)throws Exception{
int[] arr = new int[4];
for(int i=0;i<4;i++){
arr[i] = (int)(v[3-i] & 0xFF);
}
return ((arr[0<< 24+ (arr[1<< 16+ (arr[2<< 8+ (arr[3<< 0));
}
 
cs

댓글

이 블로그의 인기 게시물

공조설비에 대한 이해

자동제어 기본 교육자료 정리1 DDC 및 설비계통

RS485통신과 데이지체인(DaisyChain) 결선방식