گیت AND و گیت OR
دو گیت پایهای منطق: جدول درستی، مدل کلیدهای سری و موازی، و عملیات بیتبهبیت روی بایت.
در پایان این درس میتوانید
- جدول درستی AND و OR را بدون خطا بنویسی.
- مدل کلید سری و موازی را به گیت متناظر ترجمه کنی.
- قواعد جبری پایهٔ AND و OR را به کار ببری.
- عملیات بیتبهبیت روی دو بایت را حساب کنی.
- کاربرد ماسک بیتی را در برنامهنویسی سختافزار توضیح دهی.
در یک پرس صنعتی، دستگاه تنها زمانی حرکت میکند که هر دو دست اپراتور روی دو دکمهٔ جدا از هم باشد. این یک قانون منطقی است: «دکمهٔ چپ فشرده باشد و دکمهٔ راست هم فشرده باشد». در مقابل، آژیر یک انبار وقتی به صدا درمیآید که یا حسگر در باز شود یا حسگر پنجره. اولی رفتار گیت AND است و دومی رفتار گیت OR؛ دو آجرِ پایهای هر مدار تصمیمگیرنده.
تعریف دقیق و جدول درستی
گیت AND دو ورودی دارد و خروجیاش تنها وقتی ۱ است که هر دو ورودی ۱ باشند؛ در سه حالت دیگر خروجی ۰ است. آن را با نماد ضرب مینویسیم. گیت OR برعکس عمل میکند: خروجیاش تنها وقتی ۰ است که هر دو ورودی ۰ باشند و در سه حالت دیگر ۱ میشود؛ نمادش جمع منطقی است. توجه کن که این «جمع» با جمع حسابی فرق دارد، چون ۱ بعلاوهٔ ۱ در منطق باز هم ۱ است.
| A | B | A AND B | A OR B |
|---|---|---|---|
| ۰ | ۰ | ۰ | ۰ |
| ۰ | ۱ | ۰ | ۱ |
| ۱ | ۰ | ۰ | ۱ |
| ۱ | ۱ | ۱ | ۱ |
شهود کلیدی و قواعد جبری
مدل ذهنی خوب برای AND، دو کلید پشت سر هم روی مسیر یک لامپ است؛ اگر حتی یکی باز باشد جریان قطع میشود. برای OR دو کلید موازی را تصور کن؛ بستن هرکدام کافی است. از همین شهود چند قاعده بیرون میآید: A ضربدر ۱ برابر A است، پس ورودی ۱ برای AND حکم «اجازهٔ عبور» را دارد. A ضربدر ۰ همیشه ۰ است، پس ورودی ۰ مثل قفل عمل میکند. برعکس، A بعلاوهٔ ۰ برابر A است و A بعلاوهٔ ۱ همیشه ۱. این چهار قاعده پایهٔ ساخت «دروازهٔ داده» در ریزپردازندههاست: با یک بیت فرمان تصمیم میگیری داده عبور کند یا نه. دو قاعدهٔ دیگر هم به کار میآیند: A ضربدر A و A بعلاوهٔ A هر دو برابر خودِ A هستند.
تفاوت AND و OR را در واژههای فارسی هم میبینی: «و» سختگیر است و همه چیز را میخواهد، «یا» سخاوتمند است و به یک مورد قانع میشود.
مثال عددی حلشده
پردازندهها AND و OR را بیتبهبیت روی بایتها اجرا میکنند. عدد ۲۱۴ در هشت بیت میشود ۱۱۰۱۰۱۱۰ و عدد ۱۷۹ میشود ۱۰۱۱۰۰۱۱. برای AND، بیتهای همجایگاه را در هم ضرب کن؛ از چپ به راست: ۱ و ۱ میشود ۱؛ ۱ و ۰ میشود ۰؛ ۰ و ۱ میشود ۰؛ ۱ و ۱ میشود ۱؛ ۰ و ۰ میشود ۰؛ ۱ و ۰ میشود ۰؛ ۱ و ۱ میشود ۱؛ ۰ و ۱ میشود ۰. نتیجه ۱۰۰۱۰۰۱۰ است که ارزش دهدهیاش ۱۲۸ + ۱۶ + ۲ یعنی ۱۴۶ میشود. حالا همان دو عدد را با OR ترکیب کن تا ۱۱۱۱۰۱۱۱ به دست آید که برابر ۱۲۸ + ۶۴ + ۳۲ + ۱۶ + ۴ + ۲ + ۱ یعنی ۲۴۷ است. دقت کن که ۱۴۶ از هر دو عدد اولیه کوچکتر است و ۲۴۷ از هر دو بزرگتر؛ همین نشان میدهد AND نقش «فیلتر» را دارد و OR نقش «تجمیعکننده» را.
کاربرد واقعی: ماسک بیتی
برنامهنویسان با AND بیتهای ناخواسته را صفر میکنند. اگر همان ۲۱۴ را با ماسک ۰۰۰۰۱۱۱۱ که برابر ۱۵ است AND کنی، چهار بیت پرارزش حذف میشوند و ۰۰۰۰۰۱۱۰ یعنی ۶ باقی میماند؛ دقیقاً باقیماندهٔ تقسیم ۲۱۴ بر ۱۶. در مقابل با OR میتوان یک بیت مشخص را «روشن» کرد، مثلاً برای فعالکردن یک پایهٔ خروجی در میکروکنترلر، بیآنکه بقیهٔ پایهها دست بخورند. همین دو عمل ساده، ستون فقرات کار با ثباتهای سختافزاری در هر برد الکترونیکی است.
رابطههای کلیدی
مأموریت شبیهسازی
با گیت AND شروع کن، هر چهار ترکیب ورودی را بزن و سپس همان کار را با OR تکرار کن.
- با نوع گیت روی AND هر چهار ترکیب a و b را امتحان کن و جدول درستی را کامل کن.
- a را روی ۰ ثابت نگه دار و b را تغییر بده؛ نشان بده خروجی همیشه ۰ میماند.
- a را روی ۱ ثابت کن و b را تغییر بده؛ ببین خروجی دقیقاً از b پیروی میکند.
- نوع گیت را به OR تغییر بده و همان چهار ترکیب را تکرار کن؛ تنها سطر متفاوت را پیدا کن.
- با نوع گیت روی OR و a برابر ۱، مقدار b را تغییر بده و ببین خروجی همیشه ۱ میماند.
آزمون این درس
۵ پرسش چهارگزینهای. پس از ثبت، پاسخ درست و توضیح هر پرسش را میبینید. میتوانید هر چند بار که خواستید تلاش کنید؛ بهترین نمره در کارنامه ثبت میشود.