我需要形成一個20字節的數據包,並通過藍牙將有效載荷發送到硬件外設。如何在Swift中使用位操作?
這20字節的數據包內部分爲14個數據集,每個11位,最後6位應該是空字符。
因此,總計: 160位(20個字節)= 14(套)* 11(比特)+ 6(空字符)
的11位被再次分成3組2位,3位和6位。然而,這對主要問題並不重要,我現在可以通過採用'Int16'來形成11位。我會做移位操作來過濾11位,我知道這一點。
如果我只有一個數據集,那麼我應該填寫所有20個字節,除了前面的11位空字符,如果兩個數據集,然後除了22位之外的所有應該是空字符和分別。
我面臨的問題是形成這個連續的160位,因爲奇數位是11.我想採取一個'詮釋'和做移位(< <)操作,然後按位或(|)但Int是64位。
目前我認爲採取20個固定大小的字符數組將適合這種情況。儘管在概念上我認爲這是最好的方式,但我無法通過所有條件來實現這一目標。我想我需要把所有的邏輯放在一個循環中。
任何人都可以告訴是否實現這一目標的正確方法,並指導我解決它,如果這是最好的方法。如果有的話,或者指出其他任何方式。
謝謝你的詳細代碼。我把代碼放入遊樂場,並嘗試了幾個樣本測試,它運行良好,我也瞭解完整的代碼。再次感謝你。 :) –