मैं निम्नलिखित स्ट्रिंग के लिए यह अहस्ताक्षरित पूर्णांक प्रतिनिधित्व है परिवर्तित कर रहा हूँ:इन बाइट्स को पायथन में int में बदलने के लिए सबसे छोटा तरीका?
str = '\x00\x00\x00\x00\x00\x00\x01\xFF'
मैं struct.unpack('8B', str)
का उपयोग टपल प्रतिनिधित्व (0,0,0,0,0,0,1,255)
प्राप्त करने के लिए कर सकते हैं, लेकिन क्या तेज/सबसे आसान तरीका है एक पूर्णांक को यह टपल कन्वर्ट करने के लिए है?
अभी, मेरे कोड
def unpack_str(s):
i = r = 0
for b in reversed(struct.unpack('8B', s)):
r += r*2**i
i++
return r
है लेकिन यह लंबी और बदसूरत, इस तरह के एक सरल समारोह के लिए है! इसके लिए अवश्य ही एक बेहतर तरीका होना चाहिए! क्या कोई एसओ पायथन गुरु मुझे इसे कम करने और पाइथन-इफ़ी को ट्रिम करने में मदद कर सकता है?
श्श्श! आपका फ़ंक्शन हमेशा शून्य लौटाएगा! क्या आप देख सकते हैं क्यों? –
इसके अलावा, 'i ++' अमान्य वाक्यविन्यास है (जैसा कि समान अर्थहीन के विपरीत है, लेकिन अधिक चुस्त '++ i' जो चलता है लेकिन कुछ भी नहीं करता है)। – delnan