আপনি কীভাবে পাইথনে বাইনারি লিখন ব্যবহার করবেন?

আপনি কি পাইথন লিটারেলসের সাথে বাইনারি নম্বর হিসাবে একটি পূর্ণসংখ্যা প্রকাশ করেন?

আমি হেক্সের উত্তরটি সহজেই খুঁজে পেতে সক্ষম হয়েছি:

>>> 0x12AF
4783
>>> 0x100
256

এবং অকটাল:

>>> 01267
695
>>> 0100
64

আপনি কিভাবে Python মধ্যে বাইনারি প্রকাশ করতে literals ব্যবহার?


উত্তরগুলির সংক্ষিপ্ত বিবরণ

  • Python 2.5 এবং পূর্ববর্তী: int ('01010101111', 2) ব্যবহার করে বাইনারি প্রকাশ করতে পারে কিন্তু আক্ষরিক নয়।
  • Python 2.5 এবং এর আগে: বাইনারি লিটারেলগুলি প্রকাশ করার জন্য কোন উপায় নেই।
  • Python 2.6 beta: আপনি এটি করতে পারেন: 0b1100111 বা 0B1100111
  • Python 2.6 beta: অক্ষর প্রতিনিধিত্ব করার জন্য 0o27 বা 0O27 (দ্বিতীয় অক্ষরটি অক্ষর O) অনুমতি দেবে।
  • Python 3.0 beta: 2.6 হিসাবে একই, কিন্তু পুরোনো 027 অক্ট্যেলের সিনট্যাক্সের অনুমতি দেবে না।
0
ro fr hi

6 উত্তর

>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

অন্য উপায়.

0
যোগ
এটা আপনার জন্য স্ট্রিং যখন আকর্ষণীয়, কিন্তু বিশুদ্ধ সংখ্যার সঙ্গে কাজ করে, আপনি কোড অপ্রয়োজনীয় গণনা যোগ করুন।
যোগ লেখক Daniel Möller, উৎস

আমি পিথা 3.0 তে পরিবর্তন করার কারণে সম্ভবত বিন() দিয়ে হেক্স() এবং অক্ট() দিয়ে যাওয়ার জন্য এটি একটি জিনিস।

সম্পাদনা করুন: lbrandy এর উত্তর সব ক্ষেত্রে সঠিক।

0
যোগ

As far as I can tell Python, up through 2.5, only supports hexadecimal & octal literals. I did find some discussions about adding binary to future versions but nothing definite.

0
যোগ

আপনি কীভাবে পাইথনে বাইনারি লিখন ব্যবহার করেন?

তারা "বাইনারি" লিটারেল নন, বরং "পূর্ণসংখ্যা লিখন" আপনি একটি 0 এবং তারপর B বা b দ্বারা একটি বাইনারি ফর্ম্যাটের সাথে পূর্ণসংখ্যার লিটারেল প্রকাশ করতে পারেন এবং এর পরে একটি শূন্য শূন্য সহ এবং বেশী, উদাহরণস্বরূপ :

>>> 0b0010101010
170
>>> 0B010101
21

পাইথন 3 থেকে ডক্স , এইগুলি পূর্ণসংখ্যা প্রদানের উপায় পাইথনে লিখনঃ

পূর্ণসংখ্যা লিটারেলগুলি নিম্নলিখিত লেকিকাল সংজ্ঞা দ্বারা বর্ণনা করা হয়েছে:

<�প্রাক> <�কোড> পূর্ণসংখ্যা :: = ডিসিটিগার | বিনিনেগার | অক্টিনটেগার | hexinteger decinteger :: = nonzerodigit (["_"] ডিজিট) * | "0" + (["_"] "0") * bininteger :: = "0" ("b" | "B") (["_"] বিডিজিট) + octinteger :: = "0" ("o" | "O") (["_"] octdigit) + hexinteger :: = "0" ("x" | "X") (["_"] হেক্সডিজিট) + nonzerodigit :: = "1" ... "9" অঙ্ক :: = "0" ... "9" bindigit :: = "0" | "1" octdigit :: = "0" ... "7" hexdigit :: = অঙ্ক | "a" ... "f" | "একজন" ... "এফ" </কোড>      

পূর্ণসংখ্যার লিটারেলের দৈর্ঘ্যের কোন সীমা নেই তা ছাড়া   উপলব্ধ মেমরি সংরক্ষণ করা যাবে।

     

মনে রাখবেন একটি অ-শূন্য দশমিক সংখ্যায় নেতৃস্থানীয় জিরোগুলি অনুমোদিত নয়।   এই সি-স্টাইল অকটাল লিটারেলগুলির সাথে অবাঞ্ছিতকরণের জন্য, যা পাইথন   সংস্করণ 3.0 এর আগে ব্যবহৃত।

     

পূর্ণসংখ্যার লিটারেলের কিছু উদাহরণ:

<�প্রাক> 7 2147483647 0o177 0b100110111 3 79228162514২64337593543950336 0o377 0xdeadbeef       100_000_000_000 0b_1110_0101 </কোড>      

3.6 সংস্করণে পরিবর্তন করা হয়েছে: আন্ডারস্কোরগুলি এখন লিটালিলে গোষ্ঠীগত উদ্দেশ্যে অনুমোদিত।

বাইনারি প্রকাশের অন্য উপায়:

আপনি একটি স্ট্রিং অবজেক্টে zeros এবং ones থাকতে পারেন যাটি কাজে লাগানো যেতে পারে (যদিও আপনি বেশিরভাগ ক্ষেত্রে পূর্ণসংখ্যাে bitwise অপারেশন করতে পারেন) - শুধু শূন্য এবং শব্দের স্ট্রিং এবং আপনি যে থেকে পরিবর্তিত হচ্ছে তা (2 ):

>>> int('010101', 2)
21

আপনি ঐচ্ছিকভাবে 0b বা 0b উপসর্গ করতে পারেন:

>>> int('0b0010101010', 2)
170

যদি আপনি এটি 0 হিসাবে বেস পাস করেন তবে স্ট্রিং একটি উপসর্গের সাথে নির্দিষ্ট না হলে এটি বেস 10 অনুমান করবে:

>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21

মানুষের পাঠযোগ্য বাইনারি থেকে ফিরে int পরিবর্তন:

আপনি একটি বাইনারি শব্দের স্ট্রিং প্রতিনিধিত্ব দেখতে বিনিনে একটি পূর্ণসংখ্যা পাস করতে পারেন:

>>> bin(21)
'0b10101'

এবং আপনি বিন এবং int এবং পিছনে যাওয়ার জন্য একত্রিত করতে পারেন:

>>> bin(int('010101', 2))
'0b10101'

আপনি পূর্ববর্তী zeros সঙ্গে সর্বনিম্ন প্রস্থ করতে চান, আপনি পাশাপাশি একটি বিন্যাসে স্পেসিফিকেশন ব্যবহার করতে পারেন:

>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'
0
যোগ

For reference—future Python possibilities:
Starting with Python 2.6 you can express binary literals using the prefix 0b or 0B:

>>> 0b101111
47

আপনি একটি সংখ্যা বাইনারি উপস্থাপনা পেতে নতুন বিন ফাংশন ব্যবহার করতে পারেন:

>>> bin(173)
'0b10101101'

Development version of the documentation: What's New in Python 2.6

0
যোগ

0 শুরুতে এখানে উল্লেখ করা হয়েছে যে ভিত্তি 8 (10 না), যা দেখতে খুব সহজ।

>>> int('010101', 0)
4161

যদি আপনি 0 দিয়ে শুরু করেন না, তবে পাইথন অনুমান করে যে সংখ্যাটি 10 ​​এর ভিত্তি।

>>> int('10101', 0)
10101
0
যোগ