ইতিবাচক মানের চেয়ে শূন্য থেকে আরও 1 টি অন্তরঙ্গ, ডাবল ইত্যাদির সর্বনিম্ন মান কেন?


10

আমি জানি যে এটির 2 এর পরিপূরক এবং 1 যোগ করার সাথে কিছু করার আছে তবে আমি নেতিবাচক সংখ্যার সাথে আসে যখন আপনি কীভাবে একই পরিমাণ বিট দিয়ে আরও একটি নম্বর এনকোড করতে পারেন তা সত্যিই পাই না।


3
এর সত্যই বাজে অংশটি হ'ল Abs (MinValue) নেতিবাচক।
ওল্ডফার্ট

1
জাভাতে ডাবল। এমএটিভ্যালু হ'ল ক্ষুদ্রতম ধনাত্মক মান এবং শূন্য থেকে দূরে থাকা (আসল) সংখ্যাগুলির সমান পরিমাণ রয়েছে (এটির যথাযথ চিহ্ন রয়েছে)
র‌্যাচেট ফ্রিক

উত্তর:


16

এই পদে এটি সম্পর্কে চিন্তা করুন। পূর্ববর্তী চিহ্ন সহ একটি 2-বিট নম্বর নিন:

000 = 0
001 = 1
010 = 2
011 = 3

এখন কিছু নেতিবাচক আছে:

111 = -1
110 = -2
101 = -3

দাঁড়াও, আমাদেরও আছে

100 ... 

এটি নেতিবাচক হতে হবে, কারণ সাইন-বিট ১. সুতরাং, যৌক্তিকভাবে এটি অবশ্যই -4 হতে হবে।

(সম্পাদনা করুন: ওয়ার্ল্ড ইঞ্জিনিয়ার যথাযথভাবে উল্লেখ করেছেন যে সমস্ত সংখ্যক সিস্টেম এইভাবে কাজ করে না - তবে আপনি যেগুলি সম্পর্কে জিজ্ঞাসা করছেন সেগুলি করুন))


11

কারণ পূর্ণসংখ্যার ব্যাপ্তিতে দুটি শ্রেণির সংখ্যা নেই, তবে তিনটি: negativeণাত্মক সংখ্যা, শূন্য এবং ধনাত্মক সংখ্যা। জিরোকে একটি স্লট নিতে হবে (শূন্যের প্রতিনিধিত্ব করতে না পারা বরং ব্যবহারিক হবে ...), সুতরাং ইতিবাচক বা নেতিবাচক শ্রেণিকে একটি স্লট ছেড়ে দিতে হবে। এই ত্যাগটি করার জন্য সাধারণত এটি ইতিবাচক পরিসরটি নির্দিষ্ট পরিমাণে স্বেচ্ছাসেবী হয় তবে বিট ম্যানিপুলেশনগুলির স্তরে কিছু জিনিস রয়েছে যা এই সিদ্ধান্তটিকে আরও সুবিধাজনক করে তুলেছে।


এটি কেবল বিট ম্যানিপুলেশন নয়। ৩২-বিট স্বাক্ষরিত সংখ্যার সেটটি হ'ল সংখ্যার সেট, যার বাইনারি উপস্থাপনাটি 31 তম পরে সমস্ত বিটগুলিতে সমান হয় এবং এই জাতীয় একটি সংখ্যার পরে 31 টি শূন্য রয়েছে ones এই সংখ্যার অ্যাডিটিভ ইনভার্স, একক 1 এবং 31 টি শূন্যের পরে জিরোগুলির একটি অসীম স্ট্রিং, স্বাক্ষরিত মানগুলির প্রয়োজনীয় প্যাটার্নের সাথে খাপ খায় না।
সুপারক্যাট

4

বাইনারিতে স্বাক্ষরিত পূর্ণসংখ্যাগুলি উপস্থাপনের জন্য বেসিক্যালি তিনটি উপায় রয়েছে: 2 এর পরিপূরক, 1 এর পরিপূরক এবং সাইন-প্রস্থতা। (বাইকাইনারি অনেক দিন আগে ডোডো পাখির পথে চলেছিল।)

1 এর পরিপূরক এবং সাইন-প্রস্থের দুটি শূন্য মান রয়েছে, +0 এবং -0, প্রতিটি অনন্য প্রতিনিধিত্ব করে। 2 এর পরিপূরকের কেবল একটি শূন্য মান এবং একটি উপস্থাপনা রয়েছে।

এখন, এন বিটের একটি ক্ষেত্র 2 ^ N মানকে এনকোড করতে পারে। 2 এর পরিপূরকগুলির মধ্যে একটিকে বিয়োগ করুন এবং আপনার কাছে 2 ^ N-1 = 2 ^ (N-1) + 2 ^ (N-1) + 1. রয়েছে যেহেতু শূন্যের জন্য উপস্থাপনা সমস্ত শূন্য বিট, এবং একটি + চিহ্ন শূন্য, সাইন বিট 1 এ সেট করে আরও একটি সম্ভাব্য ননজারো উপস্থাপনা থাকবে।

এটি 2 এর পরিপূরকটি পরিসীমাটির মানগুলি উপস্থাপন করে - (2 ^ (এন -1)) .. + (2 ^ (এন -1) - 1) বলার একটি খুব দীর্ঘ-ঘোরতর উপায়।

1 টির পরিপূরকটি আসলে 2 এর পরিপূরকের চেয়ে বেশি সুবিধা অর্জন করে যদি আপনি পূর্ণসংখ্যার ডিজিটাল সিগন্যাল প্রক্রিয়াকরণ গণনা করছেন। 1 এর পরিপূরক ক্রিয়াকলাপগুলি সহজাতভাবে শূন্যের দিকে ছিন্ন করে। 2 এর পরিপূরকগুলি -অফিনিটির দিকে কমিয়ে দেয়। আমি এটিকে একটি হার্ড পদ্ধতি শিখেছি ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.