- তোমাদের অধিকাংশই হিসাবে সম্ভবত জানেন, (বাইট-Addressable) হার্ডওয়্যার স্মৃতি দুটি বিভাগ ভাগে ভাগ করা যায় অল্প endian এবং বড় endian । সামান্য-এডিয়ান স্মৃতিতে বাইটগুলি সংখ্যাটি 0 দিয়ে শুরু হয় সামান্য (অন্তত গুরুত্বপূর্ণ) শেষে এবং বিগ-এন্ডিয়ানগুলিতে অন্যভাবে।
মজাদার ঘটনা : এই পদগুলি জোনাথন সুইফটের বই গুলিভারস ট্র্যাভেলসের উপর ভিত্তি করে যেখানে লিলিপুটিয়ান রাজা তার নাগরিকদেরকে তার সামান্য প্রান্তে (এইভাবে ছোট-ছোটদের) ডিম ভাঙ্গার আদেশ দিয়েছিল এবং বিদ্রোহীরা তাদের বড় অংশটি ভেঙে ফেলবে।
অদলবদল কীভাবে কাজ করে
মনে করুন আমাদের কাছে 12648430
মেমরির একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা (32 বিট) রয়েছে, একটি বড়-এন্ডিয়ান মেশিনে যা নীচের মতো দেখতে পারে:
addr: 0 1 2 3
memory: 00 C0 FF EE
বাইট-অর্ডার উল্টিয়ে আমরা হেক্সাডেসিমাল পূর্ণসংখ্যা পাই 0xEEFFC000
যা 4009738240
দশমিক।
তোমার কাজ
একটি প্রোগ্রাম / ফাংশন লিখুন যা দশমিকের মধ্যে একটি স্বাক্ষরবিহীন 32 বিট পূর্ণসংখ্যা প্রাপ্ত করে এবং উপরের বর্ণনার মতো শেষের দিকটি অদলবদল করার সময় ফলস্বরূপ পূর্ণসংখ্যাটি আউটপুট করে।
বিধি
- ইনপুট সবসময় সীমার মধ্যে হতে হবে
0
করার4294967295
- আউটপুট STDOUT এ মুদ্রিত করা যাবে (নতুন লাইনের / স্থানগুলি ঠিক আছে) বা ফিরে আসতে পারে
- ইনপুট এবং আউটপুট দশমিক হয়
- অবৈধ ইনপুট নেভিগেশন আচরণ অপরিশোধিত বামে
পরীক্ষার মামলা
0 -> 0
1 -> 16777216
42 -> 704643072
128 -> 2147483648
12648430 -> 4009738240
16885952 -> 3232235777
704643072 -> 42
3735928559 -> 4022250974
4009738240 -> 12648430
4026531839 -> 4294967279
4294967295 -> 4294967295
42
দশমিক ক্ষেত্রে দেওয়া হয় তবে প্রযুক্তিগতভাবে এটি সি তে বাইনারি হয়। আপনি অবশ্যই টাইপ করতে পারেন, 0x2a
আমি যা আটকাতে চেয়েছিলাম তা ইনপুটটিকে স্ট্রিং "2a"
বা এর মতো গ্রহণ করা।