में संख्याओं का मुद्रण बिट प्रतिनिधित्व मैं कंसोल पर संख्याओं के बिट प्रतिनिधित्व को प्रिंट करना चाहता हूं, ताकि मैं बिट्स पर किए जा रहे सभी कार्यों को देख सकूं।पायथन
मैं इसे पाइथन में कैसे कर सकता हूं?
में संख्याओं का मुद्रण बिट प्रतिनिधित्व मैं कंसोल पर संख्याओं के बिट प्रतिनिधित्व को प्रिंट करना चाहता हूं, ताकि मैं बिट्स पर किए जा रहे सभी कार्यों को देख सकूं।पायथन
मैं इसे पाइथन में कैसे कर सकता हूं?
बात इस तरह की?
>>> ord('a')
97
>>> hex(ord('a'))
'0x61'
>>> bin(ord('a'))
'0b1100001'
अजगर 2.6+ में: में
print bin(123)
परिणाम:
0b1111011
अजगर 2.x
>>> binary = lambda n: n>0 and [n&1]+binary(n>>1) or []
>>> binary(123)
[1, 1, 0, 1, 1, 1, 1]
ध्यान दें, उदाहरण में से लिया: " मार्क डुफोर "पर http://mail.python.org/pipermail/python-list/2003-December/240914.html
आप आगे जोड़ सकते हैं बिन = लैम्ब्डा ख:। '0b' + '' में शामिल होने (यहाँ एक उदाहरण समारोह है, यह एक सूची/सरणी और समूह चौड़ाई लेता है नक्शा (str, बाइनरी (बी))), तो यह 2.6+ पूरी तरह से –
की नकल करता है, मैं निश्चित लंबाई बाइनरी संख्या के लिए समायोजित करने के लिए 0 के साथ बाइनरी को जोड़ना चाहता हूं। – VaidAbhishek
'बिन (-7)' रिटर्न '-0b111' लेकिन आपका फ़ंक्शन' [] 'लौटाता है। –
अजगर 2.6 से - string.format method साथ:
"{0:b}".format(0x1234)
विशेष रूप से , तो आप ऐसा अलग नंबरों का अनेक बार प्रिंट अभी भी लाइन अप, गद्दी उपयोग करने के लिए पसंद कर सकते हैं:
"{0:16b}".format(0x1234)
और रिक्त स्थान के बजाय अग्रणी 0s के साथ पैडिंग छोड़ दिया है:
"{0:016b}".format(0x1234)
अजगर 3.6 से - f-strings साथ:
ही तीन उदाहरण, च-तार के साथ, होगा:
f"{0x1234:b}"
f"{0x1234:16b}"
f"{0x1234:016b}"
थोड़ा विषय से हटकर, लेकिन उपयोगी हो सकता है। बेहतर उपयोगकर्ता के अनुकूल मुद्रण के लिए मैं कस्टम प्रिंट फ़ंक्शन का उपयोग करता हूं, बेहतर पठनीयता के लिए प्रतिनिधित्व वर्ण और समूह अंतर को परिभाषित करता हूं।
def bprint(A, grp):
for x in A:
brp = "{:08b}".format(x)
L=[]
for i,b in enumerate(brp):
if b=="1":
L.append("k")
else:
L.append("-")
if (i+1)%grp ==0 :
L.append(" ")
print "".join(L)
#run
A = [0,1,2,127,128,255]
bprint (A,4)
आउटपुट::
---- ----
---- ---k
---- --k-
-kkk kkkk
k--- ----
kkkk kkkk
सख्त होने के नाते, यह संख्या का द्विआधारी प्रतिनिधित्व है, लेकिन आवश्यक रूप से स्मृति में अंतर्निहित बिट्स नहीं है। – bgusach