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



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

Two's Complement؛ ترفند مهم کامپیوتر آموزش و یادگیری Two's Complement؛ ترفند مهم کامپیوتر به صورت رایگان

فهم مکمل دو و دلیل محبوبیت آن

سلام!

در تِرِد قبلی دو روش برای نمایش عدد های منفی دیدیم: Sign and Magnitude و One’s Complement.

هر دو یه مشکل مشترک داشتند: صفر را میشد به دو شکل نوشت.


اینجاست که Two’s Complement وارد می‌شود

ایده‌ اش تقریباً همون One’s Complement است، با یه حرکت اضافه آمااااا.

برای ساختن نسخه‌ منفی یه عدد در مکمل دو، اول همه‌ بیت‌ ها رو بر عکس میکنیم؛ بعد به جواب، یک واحد اضافه می‌کنیم.

مثال

مثال: عدد ۵- در قالب ۸ بیتی

می‌خواهیم -5 را در قالب ۸ بیتی بنویسیم.

مرحله ۱: اول +5 رو مینویسیم:

00000101

مرحله ۲: همه‌ بیت‌ ها رو بر عکس می‌کنیم (One’s Complement):

11111010

مرحله ۳: یک واحد به آن اضافه میکنیم:

11111010 + 1 = 11111011

پس نمایش -5 در مکمل دو ۸ بیتی میشود:

-5 = 11111011

این «اضافه‌ کردن یک» الان چیکار کرد خب؟

جواب را با خودِ صفر میبینیم.

اگر صفر را در قالب ۸ بیتی بنویسیم، داریم:

00000000

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

11111111

و یک واحد هم اضافه میکنیم:

11111111 + 1 = 1 00000000

اما ما فقط ۸ بیت جا داریم.
آن ۱ اضافه‌ای که سمت چپ بیرون زده را نگه نمی‌داریم.

پس نتیجه دوباره می‌شود:

00000000

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

این دقیقاً همان چیزی بود که میخواستیم.

نکته

اون یکی که دور انداختیم بهش میگن carry!!

تو ترد بعد باهاش آشنا میشی;)


دلیل اصلی محبوبیت مکمل دو

اما دلیل اصلی محبوبیت مکمل دو فقط حذف «منفی یا مثبت صفر» نیست.

مکمل دو کاری میکند که جمعِ عدد های مثبت و منفی، با همان مدار جمع‌ کننده‌ معمولی انجام شود.

مثلاً اگر بخواهیم 5 + (-5) را حساب کنیم، کافی است این دو الگوی بیتی را جمع کنیم:

00000101
+11111011
= 1 00000000

باز هم فقط ۸ بیت را نگه میداریم؛ پس نتیجه:

00000000

یعنی صفر.


مزیت بزرگ مکمل دو

  • مدار لازم نیست اول تشخیص بدهد عدد ها هم‌ علامت‌ اند یا مختلف‌ العلامت.
  • لازم نیست بین «جمع» و «تفریق» محاسبه خاصی صورت بگیرد.
  • فقط بیت‌ ها را جمع میکند.

همین باعث میشود طراحی سخت‌ افزار ساده‌ تر شود؛ و به همین دلیل، مکمل دو روش رایج نمایش عددهای صحیح علامت‌دار در کامپیوترهاست.

نکته مهم

بازه‌ اعداد

وقتی با ۸ بیت در مکمل دو کار میکنیم، یک بیت از نظر ظاهری سمت چپ قرار دارد و نشانه‌ منفی‌ بودن عدد است.

پس بازه‌ عدد هایی که میتوانیم نمایش دهیم این است:

از 128- تا 127

چرا +128 نداریم؟

چون یک الگوی بیتی برای صفر لازم داریم و در سمت منفی یک الگوی اضافه باقی می‌ماند.

آن الگو این است:

10000000 = -128

فعلاً لازم نیست همه‌ جزئیات رو یاد بگیری.


جمع‌بندی

فقط این تصویر رو داشته باش:

  1. برای منفی‌ کردن یک عدد در مکمل دو، بیت‌ هاش رو بر عکس میکنیم و یک واحد به آن اضافه میکنیم.
  2. در مکمل دو، جمع و تفریق با یک منطق ساده‌تر کنار هم قرار می‌گیرند.

تِرِد بعدی می‌ریم سراغ این‌که:

کامپیوتر دقیقاً چطور جمع و تفریق باینری انجام می‌دهد و Carry چه نقشی دارد؟

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

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

نظرات