Ich muss ein 20-Byte-Datenpaket bilden und die Payload über Bluetooth an ein Hardware-Peripheriegerät senden.Wie arbeiten Sie mit Bit-Operationen in Swift?
Dieses 20-Byte-Datenpaket ist intern in 14 Datensätze unterteilt, jeder mit 11 Bits, die letzten 6 Bits sollten Nullzeichen sein.
Daher Total: 160 Bit (20 Byte) = 14 (Sätze) · 11 (Bit) + 6 (Nullzeichen)
Der 11-Bit wieder in 3 Sätze von 2 Bit aufgeteilt, 3 Bit und 6 Bit jeweils. Allerdings ist es nicht wichtig für die Hauptfrage, ich bin derzeit in der Lage, die 11 Bits zu bilden, indem ich ein "Int16" nehme. Ich werde die Schiebeoperation zum Filtern der 11 Bits machen, das weiß ich.
Wenn ich nur einen Datensatz habe, dann sollte ich alle 20 Bytes mit Ausnahme der ersten 11 Bits mit Nullzeichen füllen, wenn zwei Datensätze dann alle bis auf die 22 Bits Nullzeichen und jeweils sein sollten.
Das Problem, dem ich gegenüberstehe, ist die Bildung dieser sequentiellen 160 Bits wegen der ungeraden Bits, die 11 sind. Ich dachte an eine 'Int'-Operation und schalte (< <) Operation und dann bitweise ODER (|) aber ein Int ist 64 Bits.
Momentan denke ich, dass eine feste Größe von 20 Zeichen für diese Situation passen würde. Obwohl ich konzeptionell denke, dass es der bestmögliche Weg ist, bin ich programmatisch nicht in der Lage, die Logik mit allen Bedingungen zu bilden, um dies zu erreichen. Ich denke, ich muss die ganze Logik in eine Schleife bringen.
Kann jemand sagen, es ist der richtige Weg, um dies zu erreichen, und führen Sie mich auf die Lösung, wenn dies der beste Weg ist. Oder weisen Sie auf andere Wege hin, falls verfügbar.
Danke für die ausführliche Code. Ich habe den Code in Playground geschrieben und habe einige Beispieltests ausprobiert, es funktioniert gut und ich habe auch den kompletten Code verstanden. Vielen Dank nochmal. :) –