পাইথনে আপনি কীভাবে বাইনারি আক্ষরিক প্রকাশ করেন?
এগুলি "বাইনারি" আক্ষরিক নয়, বরং "পূর্ণসংখ্যার অক্ষর"। আপনি একটি বাইনারি ফর্ম্যাট সহ পূর্ণসংখ্যার আক্ষরিকাগুলি প্রকাশ করতে পারেন যার 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"
উপলব্ধ স্মৃতিতে কী সংরক্ষণ করা যায় তা বাদ দিয়ে পূর্ণসংখ্যার আক্ষরিক দৈর্ঘ্যের কোনও সীমা নেই is
নোট করুন যে একটি শূন্য-দশমিক সংখ্যায় শীর্ষস্থানীয় শূন্যগুলি অনুমোদিত নয়। এটি সি-স্টাইলের অক্টাল লিটারালগুলির সাথে অসম্পূর্ণতার জন্য, যা পাইথন ভার্সন 3.0 এর আগে ব্যবহার করেছিল।
পূর্ণসংখ্যার আক্ষরিক উদাহরণ:
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
সংস্করণ ৩.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'