رفتن به محتوای اصلی
مدار منطقی درس‌نامهٔ آزاد
درس متوسط ۲۲ دقیقه

مکمل‌ها و اعداد علامت‌دار

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

هدف این درس

بتوانی مکمل یک و دو را حساب کنی، تفریق را با جمع مکمل انجام دهی و سرریز را تشخیص دهی.

در این مطلب ۶

مسئله: تفریق بدون مدار تفریق

ساختن یک مدار جمع‌کننده آسان است، اما اگر برای تفریق هم مدار جدا بسازیم، سخت‌افزار دو برابر می‌شود. راه‌حل هوشمندانه: تفریق را به جمع تبدیل کن. یعنی به‌جای ، حساب کن . برای این کار باید «قرینهٔ» یک عدد دودویی را بلد باشی.

تعریف مکمل (Complement)

قرینهٔ یک عدد در یک مبنا، به‌طوری‌که جمع عدد با مکملش (با نادیده‌گرفتن نقلی آخر) صفر شود. در مبنای ۲ دو مکمل داریم: مکمل یک و مکمل دو.

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

فرمول
قانون مکمل یک

مثلاً مکمل یک برابر است. ساده است، ولی یک ایراد دارد: دو نمایش برای صفر ( و ) و برای جمع باید نقلی آخر را دوباره اضافه کرد. به همین دلیل کامپیوترها عملاً از مکمل دو استفاده می‌کنند.

مکمل دو: معکوس کن و یکی اضافه کن

فرمول
قانون مکمل دو

مثلاً مکمل دوی : اول معکوس کن ()، بعد یکی اضافه کن → .

اعداد علامت‌دار: بیت سمت چپ، تابلوی علامت است

در قرارداد مکمل دو برای اعداد علامت‌دار، پرارزش‌ترین بیت، بیت علامت است: صفر یعنی مثبت، یک یعنی منفی. عدد منفی، مکمل دوی قدرمطلقش است.

فرمول
نمایش ۹ و منفی ۹ در ۵ بیت

بازهٔ نمایش با n بیت، از تا است (در ۸ بیت: ۱۲۸− تا ۱۲۷+).

برداشت نادرست رایج

اشتباه رایج

بیت علامت را جدا کن و بقیه همان قدرمطلق است؛ مثلاً در مکمل دو، ۱۰۱۱۱ یعنی منفیِ ۷.

تصحیح

این توصیفِ روش «علامت–مقدار» است، نه مکمل دو. در مکمل دو، ۱۰۱۱۱ یعنی مکمل دوی ۰۱۰۰۱، یعنی منفی ۹. برای به دست آوردن قدرمطلق یک عدد منفی در مکمل دو، باید دوباره مکمل دو بگیری.

تفریق با جمع — و تشخیص سرریز

تفریق یعنی ؛ نقلیِ بیرون‌افتاده از سمت چپ را نادیده بگیر. مثال: در ۴ بیت: ← نقلی آخر را دور بینداز → یعنی ۲. درست شد.

تعریف سرریز (Overflow)

وقتی نتیجهٔ واقعی در بازهٔ قابل‌نمایش با تعداد بیت موجود جا نشود. قانون تشخیص: اگر نقلیِ ورودی به بیت علامت با نقلیِ خروجی از آن فرق کند، سرریز رخ داده است.

شهودش ساده است: جمع دو عدد مثبت نباید منفی شود و جمع دو منفی نباید مثبت شود. مثلاً (۷+۱ در ۴ بیت) می‌شود که خوانده می‌شود ۸−؛ نتیجه غلط است، چون ۸ در بازهٔ ۴ بیتی (تا ۷+) جا نمی‌شود.

خودت امتحان کن: مکمل‌ها زنده

عدد ۹ را در آزمایشگاه ببین: مکمل یک و دوی آن را بخوان و حالت «مکمل دو» را فعال کن تا تفسیر علامت‌دارش را ببینی. بعد عدد را عوض کن و قانون «معکوس کن و یکی اضافه کن» را راستی‌آزمایی کن.

دودویی (۸ بیت)
00001001
هگز / مبنای هشت
09 / 011
مکمل یک / مکمل دو
11110110 / 00001010
تفسیر علامت‌دار (مکمل دو)
۹

00001001 در حالت مکمل دو یعنی ۹؛ مکمل دوی آن 00001010 است.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای مکمل‌ها و اعداد علامت‌دار