কোন বিল্টিন বেস রূপান্তর!
$&2%v2/;FL:vK2*;OS#
এটি অনলাইন চেষ্টা করুন!
পুশির দুটি স্ট্যাক রয়েছে এবং এই উত্তরটি এটি ব্যাপকভাবে ব্যবহার করে।
এই প্রোগ্রাম দুটি অংশ দুটি আছে। প্রথমে, $&2%v2/;F
সংখ্যাটিকে তার বিপরীত বাইনারি উপস্থাপনায় রূপান্তর করে:
\ Implicit: Input is an integer on main stack.
$ ; \ While i != 0:
&2%v \ Put i % 2 on auxiliary stack
2/ \ i = i // 2 (integer division)
F \ Swap stacks (so result is on main stack)
উদাহরণ 10 দেওয়া, স্ট্যাকগুলি প্রতিটি পুনরাবৃত্তির উপর নিম্নলিখিত হিসাবে প্রদর্শিত হবে:
1: [10]
2: []
1: [5]
2: [0]
1: [2]
2: [0, 1]
1: [1]
2: [0, 1, 0]
1: [0]
2: [0, 1, 0, 1]
আমরা দেখতে পাচ্ছি চূড়ান্ত পুনরাবৃত্তির পরে, 0, 1, 0, 1
দ্বিতীয় স্ট্যাকের উপর তৈরি করা হয়েছে - 10 এর বিপরীত বাইনারি সংখ্যা,0b1010
।
কোডের দ্বিতীয় অংশটি, L:vK2*;OS#
আমার পূর্ববর্তী উত্তর থেকে নেওয়া হয়েছে যা বাইনারি দশমিককে রূপান্তর করে । সেই উত্তরে ডিক্স্রিবিড এবং ব্যাখ্যা করা পদ্ধতিটি ব্যবহার করে, এটি স্ট্যাকের বাইনারি অঙ্কগুলিকে বেস 10 পূর্ণসংখ্যায় রূপান্তর করে এবং ফলাফলটি মুদ্রণ করে।