intএটির জন্য এটি কাজ করে একমাত্র মান Integer.MIN_VALUE।
এর কারণ দুটি সংখ্যার পরিপূরক উপায়টি ব্যবহার করে পূর্ণসংখ্যা অগ্রাহ্য হয় ।
ব্যবহার
System.out.println(Integer.toBinaryString(Integer.MIN_VALUE));
আপনি যদি দেখেন Integer.MIN_VALUEহয়
10000000000000000000000000000000
নেতিবাচক মান গ্রহণ করা প্রথমে অদলবদল করে 0এবং 1যা দেয়
01111111111111111111111111111111
এবং যোগ করে 1, যা দেয়
10000000000000000000000000000000
আমি যে লিঙ্কটি দিয়েছি তাতে আপনি দেখতে পাচ্ছেন, উইকিপিডিয়ায় সবচেয়ে নেতিবাচক সংখ্যাগুলির সাথে সমস্যাটির কথা উল্লেখ করা হয়েছে এবং এটির একমাত্র ব্যতিক্রম নির্দিষ্ট করে:
দুজনের পরিপূরকগুলির মধ্যে সবচেয়ে নেতিবাচক সংখ্যাটিকে কখনও কখনও "অদ্ভুত সংখ্যা" বলা হয় কারণ এটি একমাত্র ব্যতিক্রম।
অবশ্যই Long.Min_Valueযদি আপনি এটি একটি longভেরিয়েবলের মধ্যে সঞ্চয় করেন তবে আপনার কাছে একই ঘটনা রয়েছে ।
নোট করুন যে এটি কেবল জাভাতে অন্তর্নির্মিত বাইনারি স্টোরেজ সম্পর্কিত যে পছন্দগুলি করা হয়েছিল তার কারণে হয়েছে । অন্য একটি (খারাপ) সমাধান উদাহরণস্বরূপ, কেবলমাত্র সবচেয়ে গুরুত্বপূর্ণ বিটটি পরিবর্তন করে এবং অন্যান্য বিটগুলি অপরিবর্তিত রেখে অবহেলা করা হতে পারে, এটি MIN_VALUE এর সাথে এই সমস্যাটি এড়াতে পারত তবে 2 টি পৃথক 0মান এবং জটিল বাইনারি গাণিতিক তৈরি করত (আপনার কীভাবে হবে? উদাহরণস্বরূপ বর্ধিত?)।