Sign & Magnitude و One's Complement آموزش و یادگیری Sign & Magnitude و One's Complement به صورت رایگان
آشنایی با دو روش کلاسیک نمایش اعداد علامتدار
سلام!
تو تِرِد قبل به یه سؤالی رسیدیم: کامپیوتر چطور باید عدد های منفی رو با ۰ و ۱ نشون بده؟
گفتیم یه راه خیلی ابتدایی اینه که یه بیت رو برای علامت عدد کنار بذاریم.
مثلاً در یک عدد ۸ بیتی، بیت اول رو بیت علامت در نظر میگیریم.
اگر این بیت ۰ بود، عدد مثبته؛ اگر ۱ بود، عدد منفیه.
پس +5 و -5 این شکلی نوشته میشوند:
هفت بیت آخر مقدار ۵ رو نگه میداره و بیت اول فقط میگه این مقدار مثبته یا منفی.
به این روش میگوییم Sign and Magnitude؛ یعنی «علامت و مقدار».
مروری بر ترد قبل
دردسر های Sign and Magnitude
این روش برای آدم ها قابل فهمه، چون خیلی شبیه نوشتن عدد ها روی کاغذه.
اما برای مدار های کامپیوتری چندان خوش دست و روان نیست.
دردسر اول: صفرِ دوگانه
در این روش، هم این الگو صفر است:
و هم این یکی:
اما صفر قرار نیست دو شکل مختلف داشته باشه.
این یعنی کامپیوتر باید با دو الگوی متفاوت که هر دو یک معنی دارند کنار بیاد.
دردسر دوم: جمعکردن ساده نیست
فرض کن بخواهیم +5 و -3 را با هم جمع کنیم.
مدار نمیتونه بیت ها رو مثل دو عدد معمولی جمع کنه؛ اول باید:
- علامت ها رو ببینه
- تصمیم بگیره که اینجا جمع لازمه یا تفریق
- مقدار بزرگ تر رو پیدا کنه
- و بعد علامت جواب رو تعیین کنه
پس این روش برای نمایش عدد ساده هست، ولی برای محاسبه چندان ساده نیست.
ایدهی جدید: One’s Complement (مکمل یک)
حالا یک ایدهی دیگه رو ببینیم: One’s Complement یا «مکمل یک».
ایده اش خیلی ساده است:
برای ساختن نسخه منفیِ یک عدد، تمام بیتهای نسخه مثبتش را برعکس میکنیم.
یعنی:
و:
مثال
مثال: عدد ۵+ در One’s Complement
مثلاً +5 در نمایش ۸ بیتی این شکلیه:
حالا اگر تمام بیت ها رو برعکس کنیم، میرسیم به:
این میشه نمایش -5 در روش One’s Complement.
مزیت One’s Complement
اینجا دیگر یک بیتِ جدا اونم فقط برای علامت نداریم.
کل الگوی بیت ها با هم معنی عدد مثبت یا منفی را میسازند.
این روش یک مزیت مهم دارد:
عدد منفی را میشود با برعکسکردن مستقیم بیت ها تولید کرد.
اما مشکل صفر هنوز پابرجاست
صفر مثبت در این روش اینه:
و اگر همه بیت هاش رو برعکس کنیم، میشه:
که همان «منفی صفر» است.
پس One’s Complement هم مثل Sign and Magnitude دو نوع صفر داره.
جمع بندی
تا اینجا دو راه دیدیم:
| روش | توضیح | مشکل |
|---|---|---|
| Sign and Magnitude | بیت اول علامت، بقیه مقدار عدد | دو نوع صفر، جمع سخت |
| One's Complement | برعکس کردن همهی بیتها برای عدد منفی | دو نوع صفر |
برای همین، در تِرِد بعدی میریم سراغ روشی که این مسئله را حل میکند:
Two’s Complement یا مکمل دو
با این داداشت همراه باش!!!