गो में बाइट सारणियों को हस्ताक्षरित पूर्णांकों और फ्लोट्स में परिवर्तित करना
गो में, बाइनरी पैकेज []बाइट से अहस्ताक्षरित पूर्णांकों को परिवर्तित करने के लिए फ़ंक्शन प्रदान करता है सारणियाँ, जैसे कि बाइनरी.लिटलइंडियन.Uint16() और बाइनरी.बिगएंडियन.Uint32()। हालाँकि, हस्ताक्षरित पूर्णांक या फ़्लोट के लिए कोई प्रत्यक्ष समकक्ष नहीं हैं।
हस्ताक्षरित पूर्णांक रूपांतरण कार्यों की अनुपस्थिति का कारण
हस्ताक्षरित पूर्णांक रूपांतरण कार्यों की अनुपस्थिति मुख्य रूप से है इस तथ्य से कि बाइनरी प्रतिनिधित्व को हस्ताक्षरित या अहस्ताक्षरित मान के रूप में व्याख्या करना प्रोग्रामिंग तर्क का मामला है। []बाइट सरणी में केवल कच्चा बाइनरी डेटा होता है, जिसे एप्लिकेशन की आवश्यकताओं के आधार पर हस्ताक्षरित या अहस्ताक्षरित के रूप में व्याख्या किया जा सकता है।
हस्ताक्षरित पूर्णांकों में कैसे कनवर्ट करें
एक अहस्ताक्षरित पूर्णांक मान को एक हस्ताक्षरित पूर्णांक में बदलने के लिए, एक सरल प्रकार के रूपांतरण का उपयोग किया जा सकता है। चूँकि समान आकार के अहस्ताक्षरित और हस्ताक्षरित पूर्णांकों का मेमोरी लेआउट समान है, int16(a) का उपयोग करके a को uint16 से int16 में परिवर्तित करने से उचित चिह्न निर्दिष्ट करते समय मूल बाइनरी प्रतिनिधित्व बरकरार रहेगा।
में कनवर्ट करना फ़्लोट्स
अहस्ताक्षरित पूर्णांकों से फ़्लोट्स में कनवर्ट करने के लिए थोड़ी अधिक भागीदारी की आवश्यकता होती है। गणित पैकेज इस उद्देश्य के लिए फ़ंक्शन प्रदान करता है: गणित.फ्लोट32फ्रॉमबिट्स() और गणित.फ्लोट64फ्रॉमबिट्स()। इसके विपरीत, गणित.फ्लोट32बिट्स() और गणित.फ्लोट64बिट्स() का उपयोग फ्लोट मानों के अहस्ताक्षरित पूर्णांक प्रतिनिधित्व को प्राप्त करने के लिए किया जा सकता है।
Binary.Read() और Binary.Write()
बाइनरी पैकेज में रीड() और राइट() फ़ंक्शन भी शामिल हैं जो इन रूपांतरणों को हुड के तहत अधिक कुशलता से निष्पादित कर सकते हैं। ये फ़ंक्शन आपको मध्यवर्ती प्रकार के रूपांतरणों की आवश्यकता के बिना सीधे टाइप किए गए मान को पढ़ने की अनुमति देते हैं। उदाहरण:
b := []बाइट{0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40} वर पाई फ्लोट64 buf := बाइट्स.न्यूरीडर(बी) err := बाइनरी.रीड(buf, बाइनरी.लिटिलएंडियन, &pi) यदि त्रुटि !=शून्य { fmt.Println('बाइनरी.रीड विफल:', त्रुटि) } fmt.Println(pi) // आउटपुट: 3.141592653589793
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3