数式を解釈する助けが必要です。これは私が実験しているビーコンの文書からです。私はそれをスウィフトで書いたが、私はそれを働かせることはできない。どんなに温度変数がドキュメントから0ビーコンデータから値を読み取るSwiftのビット演算
として終わる値:
*は、主要なIDは、湿度の上位8ビットと温度の上位8ビット、および マイナーを放送しますIDは、次の2ビットの温度(合計10の最上位ビット)およびマイナーIDの14最下位ビット を、ユーザーによって構成された実際のマイナーとしてブロードキャストします。 湿度は合計8ビットで、温度は合計で10ビットです。
例:
だから、湿度:
uint16_t Humidity = Major(As Hex value) & 0xFF00;
温度:本当にマイナー
uint16_t temperature = ((Major(As Hex value) & 0x00FF) << 8) & ((Minor(As Hex value) &
0xC000) >> 8);
:
uint16_t Real Minor = Minor(As Hex value) & 0x03FF;
これは私が思い付いたとそれは正しいが、tと思われる彼は最後のビット単位に起因すると0 *
let majorAnd = UInt16(beacon.major) & 0x00FF
let majorShift = majorAnd << 8
let minorAnd = UInt16(beacon.minor) & 0xC000
let minorShift = minorAnd >> 8
let temperatureResult = majorShift & minorShift
'|'がより適切でしょう。 '+'と同じ結果が起こるのは単なる流行です。 – Alexander
@Alexanderは、 '|'がより適切であることに同意しました。編集されました。 – vacawama