20バイトのデータパケットを形成し、ペイロードをブルートゥース経由でハードウェア周辺機器に送信する必要があります。Swiftでのビット操作の操作方法は?
この20バイトのデータパケットは内部で14個のデータセットに分割され、それぞれ11ビット、最後の6ビットはヌル文字でなければなりません。
したがって、合計: 160ビット(20バイト)= 14(セット)* 11(ビット)+ 6(ヌル文字)
が11ビットを再び2ビットの3組、3に分割されそれぞれ6ビットである。しかし、それは重要な質問には重要ではない、私は現在、Int16を取ることによって、11ビットを形成することができます。私は11ビットをフィルタリングするためのシフト操作を行うだろう、私はそれを知っている。
データセットが1つしかない場合は、最初の11ビットをヌル文字で除外して、2つのデータセットが22ビット以外のすべてがヌル文字でなければなりません。
私が直面する問題は、奇数ビットが11であるためにこの連続した160ビットを形成することです。私は 'Int'を取ってシフト(< <)の演算を行い、ビットごとにOR Intは64ビットです。
現在、私は20の固定サイズの文字配列を取ることはこの状況に合うと思います。概念的には最良の方法だと思いますが、プログラムでは、これを達成するためのすべての条件でロジックを形成することができません。私はすべてのロジックをループに入れる必要があると思う。
これを達成するための正しい方法は誰にも分かりますが、これが最良の方法であれば、解決に向けて私を導くことができます。可能であれば、他の方法を指摘してください。
は、詳細なコードをありがとうございました。コードを遊び場に置き、サンプルテストを少し試しました。うまくいきましたし、完全なコードも理解していました。もう一度ありがとうございます。 :) –