ビット単位の操作とここでの初心者の移動:D移動先のセンサーからいくつかのデータを読み込み、2バイトとして取得します - 0xFFFE
としましょう。私たちはちょうどuint16(0xFFFE)
を実行することができますが、センサーが-32768から32767までの範囲の実際の値を返すので、整数に変換する必要があるので、uint16にキャストするのは簡単です。今度はと思ったかもしれません。これがいいのですか?私がすればint16(0xFFFE)
それは私が欲しいものを理解するでしょうか? "ですが、動作しているようキャストするための適切な方法
x := 0xFFFE
if (x & (1 << 15)) != 0 {
x = x - (1<<16)
}
、しかしA)私は完全にその理由を確認してください、そしてBはないです)それは私が想像したものに少し醜い:私は、次の解決策を(私はウェブからいくつかのpythonコードを翻訳)使用して終了しましたuint16〜int16をキャストするための簡単な解決策でなければなりません。誰もが私に手を差し伸べて、これがなぜこの方法であるのか明確にすることはできますか?それとも他の方法がありますか?
マイナーnitpick:Goは型キャストを持っていません。それはむしろ型変換を持っています。 – kostix