프로그래밍/아두이노[Arduino]&라즈베리파이[Raspberry Pi]
아두이노 16진수 변수 합치기[low byte, high byte]
yohoi
2022. 12. 30. 22:04
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));
감사합니다.