কোড-গল্ফ করার সময় এমন সময় আসবে যখন আপনার কোডের একটি হেক্স ডাম্পের প্রয়োজন হবে, সাধারণত আপনি অনিদ্রিত অক্ষর ব্যবহার করেছেন বলে। সুতরাং, কেন হেক্স ডাম্প নিজেই একটি প্রোগ্রাম তৈরি করবেন না?
চ্যালেঞ্জ
এই চ্যালেঞ্জটি হ'ল, কোনও ইনপুট না দিয়ে নিম্নলিখিত ফরম্যাটে আপনার উত্স কোডের একটি হেক্স ডাম্প আউটপুট দেয়:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
অথবা, উদাহরণস্বরূপ, যদি আপনার প্রোগ্রামটি ছিল print("SomeString"):rep(123)
0000: 70 72 69 6e 74 28 5c 22 53 6f 6d 65 53 74 72 69 print("SomeStrin
0010: 6e 67 5c 22 29 3a 72 65 70 28 31 32 33 29 g"):rep(123)
সুনির্দিষ্ট
হেক্স ডাম্পটি তিনটি অংশে সারিগুলিতে বিভক্ত হয়, প্রতিটি সারি আপনার উত্স কোডের 16 বাইট উপস্থাপন করে।
প্রথম অংশটি মেমরি ঠিকানা। এটি নির্দিষ্ট করে যে আপনার কোডটিতে বর্তমান সারিটি শুরু হয়। 2 বাইট হেক্সাডেসিমাল সংখ্যা হিসাবে লিখিত, এর পরে ক :
, পরে একটি স্থান।
দ্বিতীয়টি হেক্স ডাম্প নিজেই। এটি আপনার সোর্স কোডের 16 বাইট, স্পেস দ্বারা পৃথক করে হেক্সাডেসিমাল ফর্মে লিখিত। এটি আপনার কোডের এনকোডিং ব্যবহার করে একটি সঠিক বাইট উপস্থাপনা হওয়া উচিত।
শেষ পর্যন্ত, দুটি স্থান ফাঁক হওয়ার পরে কোডটি নিজেই। এটি প্রিন্টযোগ্য অক্ষর হিসাবে আপনার কোডের কেবল 16 অক্ষর.
মন্তব্য
- এই হল একটি quine তাই হয়, চ্যালেঞ্জ স্ট্যান্ডার্ড Quine বিধি প্রযোজ্য।
- এবং এটি কোড-গল্ফ চ্যালেঞ্জও, সুতরাং স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ হয়।
- দ্বিতীয় উদাহরণ হিসাবে দেখানো হয়েছে, EOF এর পরে বাইট লিখবেন না, পরিবর্তে হোয়াইটস্পেস ব্যবহার করুন।
- স্পেস স্পেস ঠিক আছে।
- হেক্স ডাম্পের ইনবিল্টস, যদি আপনার এই নির্দিষ্ট ফর্ম্যাটে একটি থাকে তবে এটি নিষিদ্ধ নয় তবে তা ভুগছে।
- মুদ্রণযোগ্য অক্ষরগুলি এমন কোনও চরিত্রকে বোঝায় যা কেবলমাত্র একক বাইট হিসাবে উপস্থাপিত, একটি একক ব্যবধানযুক্ত গ্লিফ হিসাবে প্রতিনিধিত্ব করতে পারে না। হল UTF-8, এর মানে হল জন্য
0-31
,128-255
। জন্য জেলি Codepage , যেমন সমস্ত অক্ষর একটি একক ব্যবধানযুক্ত গ্লিফের হিসাবে প্রতিনিধিত্ব করা যেতে পারে, কোন অ মুদ্রণযোগ্য অক্ষর।
xxd
এটি পড়তে পারবেন না ?