में कैसे हटा सकता हूं यह कुछ हद तक this posting का पालन करता है लेकिन एक अलग प्रश्न के साथ मुझे लगा कि मुझे एक अलग थ्रेड में पूछना चाहिए।मैं एनएसआईएनटेगर या NSUInteger के बाइट ऑर्डर को उद्देश्य-सी
मैं उस बिंदु पर हूं जहां मेरे पास स्मृति में लगातार चार बाइट हैं जिन्हें मैंने फ़ाइल से पढ़ा है। मैं इन्हें थोड़ा सरणी के रूप में स्टोर करना चाहता हूं (उनमें से वास्तविक int मान बाद में कोई फर्क नहीं पड़ता)। जब मैं अपने int में क्या प्रिंट करता हूं, तो मुझे लगता है कि यह रिवर्स ऑर्डर (थोड़ा एंडियन) में संग्रहीत किया जाता है।
क्या किसी के पास बाइट्स के क्रम को उलटाने के लिए एक अच्छी विधि है। फिर एक बार उलट दिया, लगातार दो बिट्स फैलाने और एक int में वापस परिवर्तित करने के लिए लगातार बिट्स उठा?
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);
NSLog(@"data:%08x", intData); // data:28450200
धन्यवाद मैंने थोड़ा सा देखा और NSSwapBigIntToHost नहीं मिला। मैंने सुझाए गए कुछ कम बिट मैनिप्ल्यूशन को समाप्त कर दिया। मैं थोड़ा सा धारणा कर रहा हूं कि मेरे कोड में मेरी इंट 32-बिट होगी। मैं जो कर रहा था वह एक हस्ताक्षरित char * tref = (unsigned char *) &temp; बना रहा था, फिर मैं बाइट्स के माध्यम से लूप और स्वैप कर रहा था, फिर एक पूर्णांक में ट्रेफ डाला। सुंदर नहीं है लेकिन जब तक मैं 32-बिट पर काम करता हूं तब तक काम करता है। – Scott
महान प्रश्न और उत्तर – LolaRun