ডিম্বাশয় এবং কাঠি হিসাবে মুদ্রিত বাইনারি মানগুলিকে আইবোল করা এত সহজ নয় ... এটির সাহায্যে আপনাকে অবশ্যই একটি ফাংশন (বা একটি প্রোগ্রাম) লিখতে হবে যা কাস্টম বাইনারি উপস্থাপনায় নম্বর মুদ্রণ করে।
সুতরাং আমি একটি সংখ্যা নিতে চাই, 3 ( 00000011
) বলি এবং বিটগুলি ব্যবহারকারী-সংজ্ঞায়িত বিন্যাসে আউটপুট করতে পারি, উদাহরণস্বরূপ স্পেস বিচ্ছিন্ন জোড়া দিয়ে:
00 00 00 11
বা, বলুন, বিপরীত ক্রমে এবং কিছু সজ্জকারের সাথে, যেমন:
11_00_00_00
তদ্ব্যতীত, '0' এবং '1' কাস্টম অক্ষর হিসাবে তাদের আরও আলাদা করে দেখানোর সম্ভাবনা থাকতে হবে, যেমন:
XX oo oo oo
সুতরাং চ্যালেঞ্জটি হ'ল কোডটি লিখুন যা নিম্নলিখিত স্পেসিফিকেশনগুলির সাথে সমস্ত করে।
সবিস্তার বিবরণী
ফাংশনটি এইভাবে ইনপুট নেয়: চ (এ, মাস্ক, জিরো, এক)
পরামিতি:
এ - ইনপুট নম্বর - 0-255 সীমাতে যে কোনও (স্বাক্ষরবিহীন) পূর্ণসংখ্যা।
মাস্ক - একটি স্ট্রিং প্যারামিটার যা আউটপুট নির্মাণের সংজ্ঞা দেয়।
জিরোস - একই দৈর্ঘ্যের একটি স্ট্রিং প্রতিটি আউটপুট স্লটের জন্য 'শূন্য' গ্লাইফগুলি সংজ্ঞায়িত করে।
বেশী - একই দৈর্ঘ্যের একটি স্ট্রিং প্রতিটি আউটপুট স্লটের জন্য 'এক' গ্লাইফগুলি সংজ্ঞায়িত করে।
আউটপুট নির্মাণের জন্য বিধি:
আউটপুটটি কীভাবে উত্পন্ন হয় তা বোঝার জন্য উদাহরণ সহ এই চিত্রটি দেখুন:
সুতরাং কেবল মাস্কের একক অঙ্কগুলি পার্স করা হবে এবং এ এর বিট দ্বারা প্রতিস্থাপিত হবে, অন্যান্য অক্ষর যেমন রয়েছে তেমনই রেখে দেওয়া হয় । আরও, যদি নেওয়া বিটের মান 1 হয় তবে এটি চূড়ান্ত আউটপুটে "এক্স" হিসাবে প্রদর্শিত হবে এবং যদি এটি 0 হয় তবে এটি "ও" হিসাবে প্রদর্শিত হবে। উপরের উদাহরণে নেওয়া চারটি বিট "1" তাই আমরা সমস্ত স্লটে "এক্স" দেখি।
যদি ইনপুট নম্বরটি 128 হয়, তবে, যুক্তিযুক্তভাবে, আউটপুট হবে X foo bar ooo
। "জিরো" এবং "একগুলি" পরামিতিগুলির অক্ষর: যে কোনও মুদ্রণযোগ্য ASCII অক্ষর, ধরে নিন যে তারা সর্বদা মুখোশের সাথে চারদিকে সুসংযুক্ত থাকে।
দ্রষ্টব্য :
- বিটগুলি 0-সূচকযুক্ত: 0 তম বিএসটি হ'ল এমএসবি।
- ধরে নিন যে 8,9 অঙ্কগুলি মাস্ক স্ট্রিংয়ে অনুমোদিত নয়।
- ইনপুট স্ট্রিংগুলিতে যে কোনও মুদ্রণযোগ্য এএসসিআইআই অক্ষর অন্তর্ভুক্ত থাকে।
- 'জিরোস' এবং 'জেনস' মুখোশটির সাথে চারদিকে সমন্বিত।
- আপনার ভাষায় বিশেষ অক্ষর / সংশোধকগুলির জন্য: আমরা ধরে নিতে পারি যে তারা ইনপুট স্ট্রিংটিতে উপস্থিত হবে না।
স্বচ্ছতার জন্য আরও উদাহরণ দেখুন।
ইনপুট -> আউটপুট উদাহরণ
স্পেস ডিলিমিটারের সাথে সমস্ত সাধারণ 8 টি বিট আউটপুট, সাধারণ ডিম্বাকৃতি এবং স্টিক স্বরলিপি:
mask = "0123 4567"
zeros = "0000 0000"
ones = "1111 1111"
A=1 -> 0000 0001
বিপরীত ক্রমে আউটপুট, ড্যাশ-এবং-গ্লিফ নোটেশনে:
mask = "| 7654 3210 |"
zeros= " ---- ---- "
ones = " ssss ssss "
A=1 -> | s--- ---- |
A=3 -> | ss-- ---- |
A=128-> | ---- ---s |
একটি আউটপুটে বিভিন্ন স্বরলিপি যেমন প্যাকড ডেটার জন্য:
mask = "0 | 123 4567"
zeros= " --- ----"
ones = "X kkk ssss"
A= 15 -> | --- ssss
A= 16 -> | --k ----
A= 32 -> | -k- ----
A= 128 -> X | --- ----
A= 255 -> X | kkk ssss
পুনরাবৃত্তি নিদর্শন:
mask = "| 7 66 555 4444 |"
zeros= " . .. ... .... "
ones = " 0 00 000 0000 "
A= 0 -> | . .. ... .... |
A= 1 -> | 0 .. ... .... |
A= 2 -> | . 00 ... .... |
A= 3 -> | 0 00 ... .... |
A= 4 -> | . .. 000 .... |
হালনাগাদ
নিয়মগুলি কিছুটা সরল করা হয়েছে - প্রোগ্রামটি অবশ্যই একটি নম্বর মুদ্রণ করতে হবে (প্রাথমিকভাবে প্রস্তাবিত হিসাবে সংখ্যার অ্যারে / তালিকা নয়)।
A
না, যেহেতু পরীক্ষার সব ক্ষেত্রেই এটি একই রকম