그래서이 센서는 부호가있는 두 바이트 (최고 및 최저)를 반환하여 -500-500 사이의 부호있는 값을 반환합니다. 어떻게하면 실제 가치가 무엇인지 알아낼 수 있습니까? 나는 2의 보수를해야한다는 것을 알고 있지만 어떻게 확신 할 수는 없다. 이것은 내가 지금 가지고있는 것입니다. -2 개의 16 비트 부호있는 바이트에서 부호있는 정수 가져 오기?
real_velocity = temp.values[0];
if(temp.values[1] != -1)
real_velocity += temp.values[1];
//if high byte > 1, negative number - take 2's compliment
if(temp.values[1] > 1) {
real_velocity = ~real_velocity;
real_velocity += 1;
}
그러나 긍정적 인 것의 음수 값을 반환합니다. 예를 들어 -200은 바이트 255 (높음)와 56 (낮음)을 반환합니다. 311이 추가되었습니다. 위의 코드를 실행하면 -311이 나옵니다. 어떤 도움을 주셔서 감사합니다. 두 바이트를 0xFF와 0x38로를 얻고
언어를 지정 (먼저 검색)하십시오. –
나는 수색했지만, 나는 단지 약 1 바이트 만 찾았고 둘을 결합시키지 않았다. – Sterling
제목은 16 비트 바이트를 나타내지 만 텍스트는 8 비트 바이트를 의미합니다. 무엇 이니? –