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



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

کامپیوتر چطور جمع و تفریق میکند؟ آموزش و یادگیری کامپیوتر چطور جمع و تفریق میکند؟ به صورت رایگان

جمع و تفریق Binary و نقش Carry

سلام!

تا اینجا میدونیم که کامپیوتر عدد ها رو با ۰ و ۱ میبینه.

پس وقتی قرار است دو عدد رو جمع کنه، دقیقاً همون کاری رو انجام میده که ما روی کاغذ انجام میدیم؛ فقط به‌ جای رقم‌ های ده‌ دهی، با بیت‌ های باینری این کار انجام میشود.


جمع‌ کردن بیت‌ها

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

۰ + ۰:

0 + 0 = 0

۰ + ۱ یا ۱ + ۰:

0 + 1 = 1
1 + 0 = 1

اما ۱ + ۱ چی؟

وقتی 1 و 1 رو جمع میکنیم، جواب در ده‌ دهی ۲ می‌شود.

و میدانیم که 2 در باینری این شکلی است:

2 = 10₂

پس:

1 + 1 = 10₂

یعنی در جایگاه فعلی ۰ می‌نویسیم و یک ۱ به خانه‌ی سمت چپ می‌فرستیم.


Carry یا «نقلی» چیست؟

به آن ۱ که به جایگاه بعدی می‌رود، Carry یا «نقلی» می‌گوییم.

مثال

مثال: جمع دو عدد باینری

این جمع را ببین:

1011
+0110
──────
10001

از سمت راست شروع می‌کنیم:

ستونمحاسبهنتیجه
اول1 + 0 = 1مینویسیم ۱
دوم1 + 1 = 10مینویسیم ۰ و Carry
سوم0 + 1 + 1 = 10مینویسیم ۰ و Carry
چهارم1 + 0 + 1 = 10مینویسیم ۰ و Carry
آخرCarry باقی‌ ماندهبیت جدید در سمت چپ
نتیجه:
10001₂ = 17₁₀

یعنی:

11₁₀ + 6₁₀ = 17₁₀

تفریق چگونه انجام می‌شود؟

تا اینجا جمع را دیدیم. اما تفریق چی؟

در تِرِد قبل گفتیم مکمل دو دقیقاً برای همین‌جا به کار می‌ آید.

کامپیوتر معمولاً تفریق رو به شکل «جمع‌ کردن با عدد منفی» انجام میده.

مثلاً اگر بخواهیم حساب کنیم:

7 − 5

کامپیوتر به آن اینطوری نگاه میکند:

7 + (−5)
مثال

مثال: ۵ − ۷ در نمایش ۴ بیتی

مرحله ۱: 7 را در باینری مینویسیم:

7 = 0111

مرحله ۲: -5 را با مکمل دو میسازیم:

اول 5 را مینویسیم:

5 = 0101

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

1010

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

1011

پس:

-5 = 1011
(در سیستم مکمل دو البته)

مرحله ۳: حالا جمع میکنیم:

0111
+ 1011
──────
10010

ما در این مثال فقط ۴ بیت جا داریم، پس آن ۱ اضافه‌ سمت چپ رو کنار میگذاریم:

0010₂ = 2₁₀

پس:

7 − 5 = 2

ایده‌ی اصلی

کامپیوتر لازم نیست برای تفریق، یک ماشین کاملاً جداگانه داشته باشد.

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


جمع‌بندی

فعلاً این دو نکته رو کنار هم داشته باش:

  1. وقتی جمعِ دو بیت از ۱ بیشتر شود، یک Carry به ستون بعدی می‌رود.
  2. وقتی کامپیوتر میخواهد تفریق کند، عدد دوم رو منفی میکند و آن را با عدد اول جمع میزند.

در تِرِد بعدی میریم سراغ یک اتفاق مهم:

وقتی جواب درست است، اما در تعداد بیت‌هایی که داریم جا نمی‌شود؛ یعنی مفهوم Overflow.

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

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

نظرات