मैं एक 20 बाइट डाटा पैकेट के लिए फार्म और ब्लूटूथ पर एक हार्डवेयर परिधीय के लिए पेलोड भेजने की जरूरत है।स्विफ्ट में बिट ऑपरेशंस के साथ कैसे काम करें?
यह 20 बाइट डाटा पैकेट आंतरिक रूप से 14 डेटा सेट, 11 बिट से प्रत्येक में बांटा गया है, पिछले 6 बिट्स अशक्त चरित्र होना चाहिए।
इसलिए, कुल: 160 बिट्स (20 बाइट्स) = 14 (सेट) * 11 (बिट) + 6 (शून्य अक्षर)
11 बिट फिर से 2 बिट के 3 सेट, 3 में बांटा जाता है बिट और 6 बिट प्रत्येक। हालांकि यह मुख्य प्रश्न के लिए महत्वपूर्ण नहीं है, मैं वर्तमान में, 11 बिट के रूप में एक 'int16' लेने से कर रहा हूँ। मैं 11 बिट्स को फ़िल्टर करने के लिए शिफ्ट ऑपरेशन करूंगा, मुझे पता है।
यदि मेरे पास केवल एक डेटा सेट है तो मुझे शून्य के चरित्र के साथ पहले 11 बिट्स को छोड़कर सभी 20 बाइट भरना चाहिए, यदि दो डेटा सेट तो 22 बिट्स को छोड़कर सभी को शून्य वर्ण और क्रमशः होना चाहिए।
जिस मुद्दे का मैं सामना कर रहा हूं वह 11 अनुक्रमित बिट्स की वजह से इस अनुक्रमिक 160 बिट्स का निर्माण करना है। मैंने 'इंट' लेने और शिफ्ट (< <) ऑपरेशन करने के बारे में सोचा और फिर bitwise OR (|) लेकिन एक इंट 64 बिट्स है।
वर्तमान में मैं 20 की एक निश्चित आकार चरित्र सरणी लेने इस स्थिति फिट के बारे में सोच। हालांकि धारणात्मक मुझे लगता है कि यह सबसे अच्छा संभव तरीका है, प्रोग्राम के रूप में मैं सभी शर्तों इस लक्ष्य को हासिल करने के लिए के साथ तर्क बनाने में सक्षम नहीं हूँ। मुझे लगता है कि मुझे सभी लॉजिक को लूप में रखना होगा।
क्या कोई यह बता सकता है कि यह इसे प्राप्त करने का सही तरीका है, और इसे हल करने पर मुझे मार्गदर्शन करें, अगर यह सबसे अच्छा तरीका है। या उपलब्ध होने पर किसी अन्य तरीके से इंगित करें।
विस्तृत कोड के लिए धन्यवाद। मैंने कोड को खेल के मैदान में रखा और कुछ नमूना परीक्षणों की कोशिश की, यह ठीक काम कर रहा है और मैं पूरा कोड भी समझ गया। बहुत बहुत धन्यवाद। :) –