کامپیوتر چطور جمع و تفریق میکند؟ آموزش و یادگیری کامپیوتر چطور جمع و تفریق میکند؟ به صورت رایگان
جمع و تفریق Binary و نقش Carry
سلام!
تا اینجا میدونیم که کامپیوتر عدد ها رو با ۰ و ۱ میبینه.
پس وقتی قرار است دو عدد رو جمع کنه، دقیقاً همون کاری رو انجام میده که ما روی کاغذ انجام میدیم؛ فقط به جای رقم های ده دهی، با بیت های باینری این کار انجام میشود.
جمع کردن بیتها
بیایم اول از ساده ترین حالت شروع کنیم.
۰ + ۰:
۰ + ۱ یا ۱ + ۰:
اما ۱ + ۱ چی؟
وقتی 1 و 1 رو جمع میکنیم، جواب در ده دهی ۲ میشود.
و میدانیم که 2 در باینری این شکلی است:
پس:
یعنی در جایگاه فعلی ۰ مینویسیم و یک ۱ به خانهی سمت چپ میفرستیم.
Carry یا «نقلی» چیست؟
به آن ۱ که به جایگاه بعدی میرود، Carry یا «نقلی» میگوییم.
مثال
مثال: جمع دو عدد باینری
این جمع را ببین:
+0110
──────
10001
از سمت راست شروع میکنیم:
| ستون | محاسبه | نتیجه |
|---|---|---|
| اول | 1 + 0 = 1 | مینویسیم ۱ |
| دوم | 1 + 1 = 10 | مینویسیم ۰ و Carry |
| سوم | 0 + 1 + 1 = 10 | مینویسیم ۰ و Carry |
| چهارم | 1 + 0 + 1 = 10 | مینویسیم ۰ و Carry |
| آخر | Carry باقی مانده | بیت جدید در سمت چپ |
یعنی:
تفریق چگونه انجام میشود؟
تا اینجا جمع را دیدیم. اما تفریق چی؟
در تِرِد قبل گفتیم مکمل دو دقیقاً برای همینجا به کار می آید.
کامپیوتر معمولاً تفریق رو به شکل «جمع کردن با عدد منفی» انجام میده.
مثلاً اگر بخواهیم حساب کنیم:
کامپیوتر به آن اینطوری نگاه میکند:
مثال
مثال: ۵ − ۷ در نمایش ۴ بیتی
مرحله ۱: 7 را در باینری مینویسیم:
مرحله ۲: -5 را با مکمل دو میسازیم:
اول 5 را مینویسیم:
بیت ها را برعکس میکنیم:
و یک واحد اضافه میکنیم:
پس:
(در سیستم مکمل دو البته)
مرحله ۳: حالا جمع میکنیم:
+ 1011
──────
10010
ما در این مثال فقط ۴ بیت جا داریم، پس آن ۱ اضافه سمت چپ رو کنار میگذاریم:
پس:
ایدهی اصلی
کامپیوتر لازم نیست برای تفریق، یک ماشین کاملاً جداگانه داشته باشد.
با کمک مکمل دو، همان مدار جمعکننده میتواند تفریق رو هم انجام بدهد در نتیجه مدار ما ساده تر خواهد بود.
جمعبندی
فعلاً این دو نکته رو کنار هم داشته باش:
- وقتی جمعِ دو بیت از ۱ بیشتر شود، یک Carry به ستون بعدی میرود.
- وقتی کامپیوتر میخواهد تفریق کند، عدد دوم رو منفی میکند و آن را با عدد اول جمع میزند.
در تِرِد بعدی میریم سراغ یک اتفاق مهم:
وقتی جواب درست است، اما در تعداد بیتهایی که داریم جا نمیشود؛ یعنی مفهوم Overflow.
با این داداشت همراه باش!!!