دیجیتال دیزاین به سبک تِرِد دیجیتال دیزاین به سبک تِرِد



شما این تِرِد رو مطالعه کردید آفرین.🍻
اوپس: تصویر 502
ایلیا 1405/5/30

Sign & Magnitude و One's Complement آموزش و یادگیری Sign & Magnitude و One's Complement به صورت رایگان

آشنایی با دو روش کلاسیک نمایش اعداد علامت‌دار

سلام!

تو تِرِد قبل به یه سؤالی رسیدیم: کامپیوتر چطور باید عدد های منفی رو با ۰ و ۱ نشون بده؟

گفتیم یه راه خیلی ابتدایی اینه که یه بیت رو برای علامت عدد کنار بذاریم.

مثلاً در یک عدد ۸ بیتی، بیت اول رو بیت علامت در نظر میگیریم.
اگر این بیت ۰ بود، عدد مثبته؛ اگر ۱ بود، عدد منفیه.

پس +5 و -5 این شکلی نوشته میشوند:

+5 = 0 0000101
-5 = 1 0000101

هفت بیت آخر مقدار ۵ رو نگه میداره و بیت اول فقط میگه این مقدار مثبته یا منفی.

به این روش میگوییم Sign and Magnitude؛ یعنی «علامت و مقدار».

مروری بر ترد قبل

دردسر های Sign and Magnitude

این روش برای آدم‌ ها قابل‌ فهمه، چون خیلی شبیه نوشتن عدد ها روی کاغذه.

اما برای مدار های کامپیوتری چندان خوش‌ دست و روان نیست.

دردسر اول: صفرِ دوگانه

در این روش، هم این الگو صفر است:

0 0000000 = +0

و هم این یکی:

1 0000000 = -0

اما صفر قرار نیست دو شکل مختلف داشته باشه.
این یعنی کامپیوتر باید با دو الگوی متفاوت که هر دو یک معنی دارند کنار بیاد.

دردسر دوم: جمع‌کردن ساده نیست

فرض کن بخواهیم +5 و -3 را با هم جمع کنیم.

مدار نمیتونه بیت‌ ها رو مثل دو عدد معمولی جمع کنه؛ اول باید:

  • علامت‌ ها رو ببینه
  • تصمیم بگیره که اینجا جمع لازمه یا تفریق
  • مقدار بزرگ‌ تر رو پیدا کنه
  • و بعد علامت جواب رو تعیین کنه

پس این روش برای نمایش عدد ساده هست، ولی برای محاسبه چندان ساده نیست.


ایده‌ی جدید: One’s Complement (مکمل یک)

حالا یک ایده‌ی دیگه رو ببینیم: One’s Complement یا «مکمل یک».

ایده‌ اش خیلی ساده است:

برای ساختن نسخه‌ منفیِ یک عدد، تمام بیت‌های نسخه‌ مثبتش را برعکس می‌کنیم.

یعنی:

0 → 1

و:

1 → 0
مثال

مثال: عدد ۵+ در One’s Complement

مثلاً +5 در نمایش ۸ بیتی این شکلیه:

+5 = 00000101

حالا اگر تمام بیت‌ ها رو برعکس کنیم، میرسیم به:

-5 = 11111010

این میشه نمایش -5 در روش One’s Complement.


مزیت One’s Complement

اینجا دیگر یک بیتِ جدا اونم فقط برای علامت نداریم.

کل الگوی بیت‌ ها با هم معنی عدد مثبت یا منفی را می‌سازند.

این روش یک مزیت مهم دارد:

عدد منفی را می‌شود با برعکس‌کردن مستقیم بیت‌ ها تولید کرد.


اما مشکل صفر هنوز پابرجاست

صفر مثبت در این روش اینه:

00000000

و اگر همه‌ بیت‌ هاش رو برعکس کنیم، میشه:

11111111

که همان «منفی صفر» است.

پس One’s Complement هم مثل Sign and Magnitude دو نوع صفر داره.


جمع‌ بندی

تا اینجا دو راه دیدیم:

روشتوضیحمشکل
Sign and Magnitudeبیت اول علامت، بقیه مقدار عدددو نوع صفر، جمع سخت
One's Complementبرعکس کردن همه‌ی بیت‌ها برای عدد منفیدو نوع صفر
هر دو روش کمک میکنند منفی‌ ها رو با بیت نشان دهیم، اما هر دو مشکل دارند.

برای همین، در تِرِد بعدی میریم سراغ روشی که این مسئله را حل میکند:

Two’s Complement یا مکمل دو

با این داداشت همراه باش!!!

شماره تِرِد : شماره 5 از 9

نظرات