পাইথনে আপনি কীভাবে বাইনারি আক্ষরিক প্রকাশ করেন?
এগুলি "বাইনারি" আক্ষরিক নয়, বরং "পূর্ণসংখ্যার অক্ষর"। আপনি একটি বাইনারি ফর্ম্যাট সহ পূর্ণসংখ্যার আক্ষরিকাগুলি প্রকাশ করতে পারেন যার 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'