"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं पूर्णांकों को बाइट स्ट्रिंग्स में कैसे परिवर्तित कर सकता हूं और पायथन में वापस कैसे कर सकता हूं?

मैं पूर्णांकों को बाइट स्ट्रिंग्स में कैसे परिवर्तित कर सकता हूं और पायथन में वापस कैसे कर सकता हूं?

2024-11-09 को प्रकाशित
ब्राउज़ करें:865

How Can I Convert Integers to Byte Strings and Back in Python?

"बाइट्स(एन)" के साथ बाइट स्ट्रिंग्स बनाना

पायथन 3 में "बाइट्स(एन)" फ़ंक्शन एक परिवर्तित नहीं करता है इसके बाइनरी प्रतिनिधित्व के लिए पूर्णांक लेकिन इसके बजाय लंबाई n की एक बाइट स्ट्रिंग बनाता है, जो शून्य बाइट्स (बी'\x00') से भरा होता है। यह व्यवहार पायथन 3.2 से उपजा है, जहां "to_bytes()" विधि को पूर्णांकों को बाइट्स में एन्कोड करने के साधन के रूप में पेश किया गया था।

To_Bytes और To_Bytes

()" विधि बाइट क्रम (बड़े-एंडियन या छोटे-एंडियन) और लंबाई को निर्दिष्ट करते हुए, एक पूर्णांक को बाइट प्रतिनिधित्व में स्पष्ट रूप से परिवर्तित करने की अनुमति देती है। उदाहरण के लिए:

(1024).to_bytes(2, byteorder='big') == b'\x04\x00'

From_Bytes और From_Bytes

पूरक "from_bytes()" विधि एक बाइट अनुक्रम को वापस पूर्णांक में परिवर्तित कर सकती है:

int.from_bytes(b'\x04\x00', 'big') == 1024

अहस्ताक्षरित पूर्णांक

"to_bytes()" विधि गैर-नकारात्मक (अहस्ताक्षरित) पूर्णांकों के लिए काम करती है। हस्ताक्षरित पूर्णांकों को संभालने के लिए, थोड़ा अलग दृष्टिकोण आवश्यक है:

def int_to_bytes(number: int) -> bytes:
    return number.to_bytes(length=(8   (number   (number < 0)).bit_length()) // 8, byteorder='big', signed=True)

def int_from_bytes(binary_data: bytes) -> Optional[int]:
    return int.from_bytes(binary_data, byteorder='big', signed=True)

इन फ़ंक्शंस का उपयोग करके, आप बाइट अनुक्रमों से हस्ताक्षरित पूर्णांकों को एनकोड और डीकोड कर सकते हैं।

विज्ञप्ति वक्तव्य इस लेख को पुन: पेश किया गया है: 1729407016 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3