본문 바로가기

프로그래밍/아두이노[Arduino]&라즈베리파이[Raspberry Pi]

아두이노 16진수 변수 합치기[low byte, high byte]



byte 형태의 변수를 값을 합치는 게 아닌 위치를 합쳐서 계산해야 하는 경우가 있습니다.

 

그냥 더한 경우 아래와 같이 잘못된 연산으로 원하지 않는 값이 나옵니다.

13 92 -> 13+92(16진수) ->a5(16진수) -> 5010(10진수) 로 표시하게 됩니다. (X)

 

  byte data[2] ={0x13,0x92};  //13 92  

  Serial.println(data[0],HEX);
  Serial.println(data[1],HEX);  

  int result = data[0]+data[1];
  Serial.println("result: "+String(result));

 

다음과 같이 사용합니다.

13 92 -> 1392(16진수) -> 5010(10진수) 로 표시하게 됩니다.

 

  byte data[2] ={0x13,0x92};  //13 92  

  Serial.println(data[0],HEX);
  Serial.println(data[1],HEX);  

  int result = word(data[0],data[1]);
  Serial.println("result: "+String(result));

감사합니다.