2013-02-03 34 views
46

दशमलव प्रारूप में हेक्स को निम्न प्रारूप में कैसे परिवर्तित करें (कम से कम दो अंक, शून्य-पैड, 0x उपसर्ग के बिना)?पायथन हेक्साडेसिमल

इनपुट: 255 आउटपुट: ff

इनपुट: 2 आउटपुट: 02

मैं hex(int)[2:] कोशिश की, लेकिन ऐसा लगता है कि यह पहला उदाहरण नहीं बल्कि एक दूसरे के प्रदर्शित करता है।

+0

[क्या आप की कोशिश की है?] (http://whathaveyoutried.com) क्यों मैं इस सवाल downvoted: http://meta.stackexchange.com/a/149138/133242 –

+0

मैंने हेक्स (int) [2 :] लेकिन ऐसा लगता है कि यह पहला उदाहरण प्रदर्शित करता है लेकिन दूसरा नहीं। –

+0

मुझे मिल गया! धन्यवाद –

उत्तर

104

format() function'02x' प्रारूप के साथ format() function का उपयोग करें।

>>> format(255, '02x') 
'ff' 
>>> format(2, '02x') 
'02' 

02 हिस्सा format() कम से कम 2 अंकों का उपयोग करना और लंबाई के लिए यह पैड को शून्य उपयोग करने के लिए कहता है, x मतलब है लोअर केस हेक्साडेसिमल।

Format Specification Mini Language भी आप अपरकेस हेक्स उत्पादन के लिए X देता है, और आप # के साथ मैदान चौड़ाई उपसर्ग एक 0x या 0X उपसर्ग (पर मौसम तुम x या X फ़ॉर्मेटर के रूप में इस्तेमाल निर्भर करता है) शामिल करने के लिए कर सकते हैं। बस ध्यान में रखना है कि आप उन अतिरिक्त 2 पात्रों के लिए अनुमति देने के लिए क्षेत्र चौड़ाई समायोजित करने की आवश्यकता:

>>> format(255, '02X') 
'FF' 
>>> format(255, '#04x') 
'0xff' 
>>> format(255, '#04X') 
'0XFF' 
+0

धन्यवाद! अच्छे खर्च। –

+0

मुझे एक समस्या है जहां हेक्साडेसिमल उपसर्ग में पूंजी "एक्स" होगी यदि प्रारूप को अपरकेस हेक्स आउटपुट का उपयोग करने के लिए सेट किया गया हो। यह आपके उदाहरण में मामला प्रतीत नहीं होता है। क्या यह सिर्फ पाइथन के मेरे स्थानीय संस्करण के साथ एक मुद्दा है? मैं संस्करण 2.7.9 का उपयोग कर रहा हूँ। – jwp36

+0

@ jwp36: नहीं, यह मेरे जवाब में एक गलती थी, अब ठीक हो गई। मैं क्षमाप्रार्थी हूं। आउटपुट स्ट्रिंग '' {: 02x} 'में प्रारूप निर्दिष्ट करने के लिए –

15

मुझे लगता है कि यह तुम क्या चाहते है:

>>> def twoDigitHex(number): 
...  return '%02x' % number 
... 
>>> twoDigitHex(2) 
'02' 
>>> twoDigitHex(255) 
'ff' 
-7

पहले उत्तर सबसे अच्छा है, लेकिन मैं एक प्राचीन जवाब है, लेकिन कार्यात्मक

>>> "".join(list(hex(255))[2:]) 
'ff' 
+2

एक ही नस में एक और जवाब के रूप में, यह शून्य पैड नहीं है। उदाहरण के लिए, '".join (सूची (हेक्स (2)) [2:])' '2'' का मूल्यांकन करता है, न कि' 02''। – therealrootuser

+1

यह प्रश्न से 'हेक्स (int) [2:] 'के समानार्थी है। आप इसे फिर से शामिल करने के लिए एक सूची क्यों बनाते हैं? – wjandrea

+0

यदि आप पहले से सहमत हैं कि एक बेहतर व्यक्ति है तो यह उत्तर क्यों पोस्ट करें? – ryry1985