したがって、このセンサーは、2つの(高および低)符号付きバイトを返すことによって-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と表示されます。何か助けてくれてありがとう。
言語を指定します(最初の検索)してください。 –
私は検索しましたが、私は約1バイトのものしか見つけず、2つを結合しません。 – Sterling
タイトルには16ビットのバイトが含まれていますが、テキストには8ビットのバイトが含まれています。どちらですか? –