आप पायथन में द्विआधारी शाब्दिक कैसे व्यक्त करते हैं?
वे "बाइनरी" शाब्दिक नहीं हैं, बल्कि "पूर्णांक शाब्दिक" हैं। आप एक साथ एक द्विआधारी प्रारूप के साथ पूर्णांक शाब्दिक व्यक्त कर सकते हैं 0
एक के बाद B
या b
शून्य और, उदाहरण के लिए की एक श्रृंखला के द्वारा पीछा किया:
>>> 0b0010101010
170
>>> 0B010101
21
पायथन 3 डॉक्स से , ये पायथन में पूर्णांक शाब्दिक प्रदान करने के तरीके हैं:
निम्नलिखित शाब्दिक परिभाषाओं द्वारा पूर्णांक का वर्णन किया गया है:
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")*
bininteger ::= "0" ("b" | "B") (["_"] bindigit)+
octinteger ::= "0" ("o" | "O") (["_"] octdigit)+
hexinteger ::= "0" ("x" | "X") (["_"] hexdigit)+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
उपलब्ध मेमोरी में क्या संग्रहीत किया जा सकता है इसके अलावा पूर्णांक शाब्दिक की लंबाई के लिए कोई सीमा नहीं है।
ध्यान दें कि शून्य शून्य दशमलव संख्या में अग्रणी शून्य की अनुमति नहीं है। यह सी-स्टाइल ऑक्टल शाब्दिक विस्मरण के लिए है, जिसे पायथन ने संस्करण 3.0 से पहले इस्तेमाल किया था।
पूर्णांक शाब्दिक के कुछ उदाहरण:
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
संस्करण 3.6 में बदल गया: अंडरर्सकोर्स को अब शाब्दिक रूप से समूहीकृत करने की अनुमति है।
बाइनरी व्यक्त करने के अन्य तरीके:
आपके पास एक स्ट्रिंग ऑब्जेक्ट में शून्य और एक हो सकता है जिसे हेरफेर किया जा सकता है (हालांकि आपको ज्यादातर मामलों में पूर्णांक पर बिटवाइज़ संचालन करना चाहिए) - बस शून्य और लोगों के स्ट्रिंग को पास करें और जिस आधार से आप परिवर्तित कर रहे हैं (2) ):
>>> int('010101', 2)
21
आप वैकल्पिक रूप से 0b
या 0B
उपसर्ग कर सकते हैं :
>>> int('0b0010101010', 2)
170
यदि आप इसे 0
आधार के रूप में पास करते हैं , तो यह आधार 10 मान लेगा यदि स्ट्रिंग उपसर्ग के साथ निर्दिष्ट नहीं करता है:
>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21
मानव वापस पढ़ने योग्य बाइनरी से अंतर में परिवर्तित करना:
द्विआधारी शाब्दिक के स्ट्रिंग प्रतिनिधित्व को देखने के लिए आप एक पूर्णांक को बिन पास कर सकते हैं:
>>> bin(21)
'0b10101'
और अगर आप को जोड़ सकते हैं bin
और int
आगे और पीछे जाने के लिए:
>>> bin(int('010101', 2))
'0b10101'
यदि आप पूर्ववर्ती शून्य के साथ न्यूनतम चौड़ाई रखना चाहते हैं तो आप एक प्रारूप विनिर्देश का उपयोग कर सकते हैं:
>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'