আপনি যত দেয়া হবে ইনপুট একটি পূর্ণসংখ্যা k
থেকে সীমার মধ্যে -4503599627370496
(-2 52 পর্যন্ত) 4503599627370496
(2 52 )। যেমনটি সুপরিচিত , এই পরিসীমাতে পূর্ণসংখ্যাগুলি ডাবল-স্পষ্টতা ভাসমান-পয়েন্টের মান হিসাবে প্রতিনিধিত্ব করা যেতে পারে।
আপনি উচিত আউটপুট Hamming ওজন এর এনকোডিং (বেশী সংখ্যা) k
মধ্যে binary64 বিন্যাস । এটি সাইনটির জন্য 1 বিট, এক্সপোনেন্টটির জন্য 11 বিট (অফসেট সহ এনকোডেড) এবং ম্যান্টিসার জন্য 52 টি ব্যবহার করে; বিস্তারিত জানার জন্য উপরের লিঙ্কটি দেখুন।
একটি উদাহরণ হিসাবে , সংখ্যা 22
হিসাবে প্রতিনিধিত্ব করা হয়
0 10000000011 0110000000000000000000000000000000000000000000000000
যেহেতু সেখানে আছে 5
, আউটপুট হয় 5
।
মনে রাখবেন যে পরিণতি ফলাফলকে প্রভাবিত করে না, তাই আপনি আউটপুট গণনা করতে আপনার মেশিনের ডাবল-স্পষ্টতা মানগুলির প্রকৃত অভ্যন্তরীণ উপস্থাপনাটি নিরাপদে ব্যবহার করতে পারেন।
অতিরিক্ত বিধি
- প্রোগ্রাম বা ফাংশন অনুমোদিত।
- যে কোনও প্রোগ্রামিংয়ের ভাষা ব্যবহার করা যেতে পারে।
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
- ইনপুট নম্বর দশমিক হবে। এগুলি ব্যতীত ইনপুট / আউটপুট অর্থ এবং ফর্ম্যাটটি যথারীতি নমনীয় ।
- বাইটস মধ্যে সংক্ষিপ্ত কোড।
পরীক্ষার মামলা
22 -> 5
714 -> 6
0 -> 0
1 -> 10
4503599627370496 -> 5
4503599627370495 -> 55
1024 -> 3
-1024 -> 4
-4096 -> 5
1000000000 -> 16
-12345678 -> 16
binary64
বেস 2 পূর্ণসংখ্যার হিসাবে কোনওর যোগফল এবং ম্যান্টিসা যুক্ত করা । যদি আপনার যেকোন উপায়ে আলাদাভাবে পরিচালনা করতে হয় তবে এটি সমস্ত বিটগুলির মধ্যে টাইপ-পাং এবং লুপ ব্যতীত অন্য কিছু করা ভাল।
long
, তাই আপনি কেবল কোনও বাইনারি 64 বলতে পারেন না double
, কারণ সমস্ত ডাবলগুলি পূর্ণসংখ্যা হয় না। তবে সমস্ত পূর্ণসংখ্যার মানগুলি double
এর long
সীমাতে ফিরে এবং পিছনে রূপান্তর করা যায় long
। (আপনি যেমন উল্লেখ করেছেন, বিপরীতটি সত্য নয় double
default আপনি ডিফল্ট রাউন্ডিং মোড ধরে ধরে নিকটতম উপস্থাপনযোগ্য পাবেন )। যাইহোক, এই প্রশ্নটি সেট আপ করার জন্য এটি একটি সম্পূর্ণ বৈধ উপায় ছিল; আমি এটা সাবধানে> পড়তেন না <।
binary64
যদি তারা চান তবে ইতিমধ্যে ভাসমান-পয়েন্ট ফর্ম্যাটে তাদের ইনপুটগুলি গ্রহণ করতে পারে ? কিছু মানুষ (নিজেকে প্রাথমিকভাবে সহ) আবশ্যক করার ফাংশন সি এর মত একটি পূর্ণসংখ্যা প্রকার ইনপুট গ্রহণ যেমন প্রশ্ন ব্যাখ্যা করা হয়েছেlong
। সি-তে আপনি যুক্তি দিতে পারেন যে ভাষাটি আপনার জন্য রূপান্তর করবে ঠিক যেমন আপনি কল করার সময়sqrt((int)foo)
। তবে কিছু x86 মেশিন-কোড asm উত্তর রয়েছে (যেমন কোডগল্ফ.স্ট্যাকেক্সেক্সঞ্জ.com/a/136360/30206 এবং খনি) যা উভয়ই ধরে নিয়েছিল যে আমাদের 64-বিট পূর্ণসংখ্যার ইনপুট গ্রহণ করতে হবে। একটিbinary64
মান গ্রহণ করা 5 বাইট সংরক্ষণ করতে পারে।