python पायथन में टाइपकास्टिंग




string int (4)

मुझे पायथन में स्ट्रिंग्स को अन्य प्रकारों जैसे कि अहस्ताक्षरित और 8, 16, 32 और 64 बिट ints, युगल, फ़्लोट्स, और स्ट्रिंग्स पर हस्ताक्षर करने की आवश्यकता है।

मैं यह कैसे कर सकता हूँ?


मुझे नहीं लगता कि अधिक जानकारी के बिना इसे जरूरी उत्तर दिया जा सकता है। जैसा कि अन्य लोगों ने कहा है, अजगर में पूर्णांक के लिए केवल इंट और लम्बे हैं - भाषा कम-स्तरीय प्रोग्रामिंग भाषाओं के बिट-चौड़ाई और साइनेशन आर्किटेक्शंस का पालन नहीं करती है।

यदि आप अजगर के भीतर पूरी तरह से संचालन कर रहे हैं, तो आप शायद गलत प्रश्न पूछ रहे हैं आपकी ज़रूरतों को पूरा करने का एक बेहतर तरीका संभव है।

यदि आप उदाहरण के लिए, सी कोड या नेटवर्क पर अंतर कर रहे हैं, तो ऐसा करने के लिए तरीके हैं , और यह आपके पिछली पोस्टिंग के उत्तर की तरह लग रहा है जिसमें एवेन्यू बहुत सुगम है


अजगर में केवल एक ही प्रकार है int किसी स्ट्रिंग को int कनवर्ट करने के लिए, इस तरह int() उपयोग करें:

>>> str = '123'
>>> num = int(str)
>>> num
123

संपादित करें: फ्लोट में कनवर्ट करने के लिए, float() प्रयोग उसी प्रकार से करें


आप एक स्ट्रिंग को 32-बिट हस्ताक्षरित पूर्णांक के साथ int फ़ंक्शन के साथ कनवर्ट कर सकते हैं:

str = "1234"
i = int(str)  // i is a 32-bit integer

अगर स्ट्रिंग पूर्णांक का प्रतिनिधित्व नहीं करता है, तो आपको एक ValueError अपवाद मिलेगा। ध्यान दें, हालांकि, यदि स्ट्रिंग पूर्णांक का प्रतिनिधित्व करता है, लेकिन वह पूर्णांक 32-बिट हस्ताक्षरित इंट में फिट नहीं है, तो आपको वास्तव में इसके बजाय प्रकार का ऑब्जेक्ट मिल जाएगा।

इसके बाद आप इसे कुछ अन्य सरल चौड़ाई और हस्ताक्षर के साथ कुछ सरल गणित में कनवर्ट कर सकते हैं:

s8 = (i + 2**7) % 2**8 - 2**7      // convert to signed 8-bit
u8 = i % 2**8                      // convert to unsigned 8-bit
s16 = (i + 2**15) % 2**16 - 2**15  // convert to signed 16-bit
u16 = i % 2**16                    // convert to unsigned 16-bit
s32 = (i + 2**31) % 2**32 - 2**31  // convert to signed 32-bit
u32 = i % 2**32                    // convert to unsigned 32-bit
s64 = (i + 2**63) % 2**64 - 2**63  // convert to signed 64-bit
u64 = i % 2**64                    // convert to unsigned 64-bit

आप स्ट्रिंग को फ़्लोटिंग बिंदु से float फ़ंक्शन के साथ बदल सकते हैं:

f = float("3.14159")

पायथन फ़्लोट्स हैं जो अन्य भाषाओं को double रूप में दर्शाते हैं, यानी वे 64-बिट हैं। पायथन में कोई 32-बिट फ़्लोट्स नहीं हैं


निम्न प्रकार - अधिकांश भाग के लिए - पायथन में पहले स्थान पर मौजूद नहीं है। अजगर में, स्ट्रिंग्स को कनवर्ट्स, लॉन्ग्स या फ़्लोट्स में बदल दिया जाता है, क्योंकि यह सब वहाँ है।

आप उन रूपांतरणों के लिए पूछ रहे हैं जो पायथन के लिए पहले स्थान पर प्रासंगिक नहीं हैं। यहाँ उन प्रकार की सूची है जिनके लिए आपने पूछा और उनके पायथन समकक्ष

  • अहस्ताक्षरित और हस्ताक्षरित int 8 बिट्स, int
  • अहस्ताक्षरित और हस्ताक्षरित int 16 बिट्स, int
  • अहस्ताक्षरित और हस्ताक्षरित int 32 बिट, अहस्ताक्षरित: लंबे , हस्ताक्षरित int
  • अहस्ताक्षरित और हस्ताक्षरित int 64 बिट्स, लंबे समय से

  • डबल, फ्लोट

  • फ्लोट, फ्लोट
  • स्ट्रिंग, यह वह है जो आपको शुरू करना था

मुझे नहीं पता है कि निम्नलिखित क्या हैं, इसलिए मैं एक पायथन समकक्ष नहीं जानता।

  • अहस्ताक्षरित और हस्ताक्षर किए 8 बिट,
  • अहस्ताक्षरित और हस्ताक्षर किए 16 बिट,
  • अहस्ताक्षरित और हस्ताक्षर किए 32 बिट,
  • अहस्ताक्षरित और हस्ताक्षर किए 64 बिट

आपके पास पहले से ही ऐसे सभी रूपांतरण हैं जो महत्वपूर्ण हैं: int() , long() और float()





casting