Xor از طریق عملیات اساسی. عملیات منطقی پایه (و، یا، xor، نه)

صفحه اصلی / دستگاه های موبایل

در این مقاله به شما خواهم گفت که عملیات بیت چگونه کار می کند. در نگاه اول ممکن است برای شما پیچیده و بی فایده به نظر برسند، اما در واقعیت اصلا اینطور نیست. این چیزی است که من سعی خواهم کرد شما را متقاعد کنم.

مقدمه

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

من عملگرهای بیتی زیر را پوشش خواهم داد:

  • | (به صورت بیتی OR)،
  • & (به صورت بیتی و (AND))،
  • ^ (انحصاری OR (XOR))،
  • ~ (نفی بیتی (NOT))،
  • << (Побитовый сдвиг влево),
  • >> (تغییر بیتی به راست).

عملیات بیت در ریاضیات گسسته مطالعه می شود و همچنین اساس فناوری دیجیتال را تشکیل می دهد، زیرا منطق عملکرد دروازه های منطقی، عناصر اساسی مدارهای دیجیتال، بر اساس آنها است. در ریاضیات گسسته، مانند مهندسی دیجیتال، از جداول صدق برای توصیف عملکرد آنها استفاده می شود. به نظر من جداول حقیقت درک عملیات بیت را بسیار تسهیل می کند، بنابراین آنها را در این مقاله ارائه خواهم کرد. با این حال، آنها تقریباً هرگز در توضیح عملگرهای بیتی در زبان های برنامه نویسی سطح بالا استفاده نمی شوند.

شما همچنین باید در مورد عملگرهای بیت بدانید:

  1. برخی از عملگرهای بیتی مشابه عملگرهایی هستند که احتمالاً با آنها آشنا هستید (&&، ||). این به این دلیل است که آنها در واقع از برخی جهات مشابه هستند. با این حال، آنها را تحت هیچ شرایطی نباید اشتباه گرفت.
  2. اکثر عملیات بیت، عملیات انتساب ترکیبی هستند.

بیتی OR

OR بیتی معادل OR منطقی عمل می کند، اما برای هر جفت بیت از یک عدد باینری اعمال می شود. بیت باینری نتیجه فقط زمانی 0 است که هر دو بیت متناظر در 0 باشند. در سایر موارد، نتیجه باینری 1 است. یعنی اگر جدول صدق زیر را داشته باشیم:

38 | 53 به این صورت خواهد بود:

الف 0 0 1 0 0 1 1 0
ب 0 0 1 1 0 1 0 1
A | ب 0 0 1 1 0 1 1 1

در نتیجه 110111 2 یا 55 10 به دست می آید.

به صورت بیتی و

Bitwise AND به نوعی عمل مخالف بیت OR است. رقم دودویی حاصل فقط زمانی 1 است که هر دو بیت متناظر عملوندها برابر با 1 باشند. به عبارت دیگر می توان گفت که ارقام باینری عدد حاصل حاصل ضرب بیت های متناظر عملوند هستند: 1x1 = 1, 1x0 = 0. جدول صدق زیر با بیتی AND مطابقت دارد:

نمونه ای از AND که روی عبارت 38 و 53 کار می کند:

الف 0 0 1 0 0 1 1 0
ب 0 0 1 1 0 1 0 1
A&B 0 0 1 0 0 1 0 0

در نتیجه، 100100 2 یا 36 10 دریافت می کنیم.

شما می توانید از عملگر بیتی AND برای بررسی زوج یا فرد بودن یک عدد استفاده کنید. برای اعداد صحیح، اگر کمترین بیت مهم 1 باشد، عدد فرد است (بر اساس تبدیل باینری به اعشاری). اگر فقط می توانید از % 2 استفاده کنید، چرا این ضروری است؟ به عنوان مثال، در رایانه من، &1 66٪ سریعتر اجرا می شود. یک تقویت عملکرد بسیار خوب، اجازه دهید به شما بگویم.

انحصاری OR (XOR)

تفاوت XOR و بیتی OR در این است که برای تولید 1، تنها یک بیت در یک جفت می تواند 1 باشد:

برای مثال عبارت 138^43 برابر خواهد بود با ...

الف 1 0 0 0 1 0 1 0
ب 0 0 1 0 1 0 1 1
A^B 1 0 1 0 0 0 0 1

… 10100001 2 یا 160 10

با استفاده از ^ می توانید مقادیر دو متغیر (با نوع داده یکسان) را بدون استفاده از متغیر موقت تغییر دهید.

همچنین می توانید متن را با استفاده از OR انحصاری رمزگذاری کنید. برای انجام این کار، فقط باید همه کاراکترها را تکرار کنید، و آنها را با کاراکتر کلیدی ^ کنید. برای رمز پیچیده تر، می توانید از یک رشته کاراکتر استفاده کنید:

String msg = "این یک پیام است"; پیام char = msg.toCharArray(); کلید رشته = ".*)"; String encryptedString = new String(); برای (int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

XOR ایمن ترین روش رمزگذاری نیست، اما می توان آن را بخشی از الگوریتم رمزگذاری کرد.

نفی بیتی (NOT)

نفی بیتی همه بیت های عملوند را معکوس می کند. یعنی چیزی که 1 بود 0 می شود و بالعکس.

به عنوان مثال، در اینجا عملیات ~52 است:

الف 0 0 1 1 0 1 0 0
~ A 1 1 0 0 1 0 1 1

نتیجه 203 10 خواهد بود

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

کد اضافی

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

نکته اصلی که باید در مورد اعداد نوشته شده در متمم دو بدانید این است که مهم ترین بیت علامت است. اگر 0 باشد، عدد مثبت است و با نمایش این عدد در کد مستقیم منطبق است و اگر 1 باشد، منفی است. یعنی 10111101 عدد منفی و 01000011 عدد مثبت است.

برای تبدیل یک عدد منفی به متمم دو آن، باید تمام بیت های عدد را معکوس کنید (در اصل با استفاده از نفی بیتی) و 1 را به نتیجه اضافه کنید.

برای مثال، اگر 109 داشته باشیم:

الف 0 1 1 0 1 1 0 1
~ A 1 0 0 1 0 0 1 0
~A+1 1 0 0 1 0 0 1 1

با روش بالا در کد متمم Two -109 به دست می آید.
یک توضیح بسیار ساده در مورد کد اضافی به تازگی ارائه شده است و من شما را به مطالعه دقیق این موضوع توصیه می کنم.

تغییر بیت به چپ

تغییر بیت کمی با عملیات بیتی که قبلاً بحث شد متفاوت است. یک شیفت به سمت چپ بیت‌های عملوند N تعداد بیت را به سمت چپ منتقل می‌کند و با کم‌ترین بیت شروع می‌شود. فضاهای خالی بعد از شیفت با صفر پر می شود. اینجوری میشه:

الف 1 0 1 1 0 1 0 0
الف<<2 1 1 0 1 0 0 0 0

یکی از ویژگی‌های جالب جابه‌جایی به سمت چپ توسط N این است که معادل ضرب عدد در 2 N است. پس 43<<4 == 43*Math.pow(2,4) . Использование сдвига влево вместо Math.pow обеспечит неплохой прирост производительности.

تغییر بیت به سمت راست

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

اگر عملوند مثبت باشد، فضاهای خالی با صفر پر می شوند. اگر در ابتدا با یک عدد منفی کار کنیم، تمام فضاهای خالی سمت چپ با یک عدد پر می شود. این کار برای حفظ علامت طبق کد اضافی که قبلا توضیح داده شد انجام می شود.

از آنجایی که شیفت بیتی به راست عمل مخالف تغییر بیت به چپ است، به راحتی می توان حدس زد که انتقال یک عدد به راست بر N تعداد موقعیت، آن عدد را بر 2 N نیز تقسیم می کند. باز هم، این بسیار سریعتر از تقسیم عادی است.

نتیجه گیری

بنابراین اکنون شما بیشتر در مورد عملیات بیت می دانید و از آنها نمی ترسید. من می توانم فرض کنم که هر بار که بر 2 تقسیم می کنید از >>1 استفاده نمی کنید. با این حال، عملیات بیت خوب است که در زرادخانه خود داشته باشید، و اکنون می توانید در صورت لزوم از آنها استفاده کنید یا به یک سوال مصاحبه پیچیده پاسخ دهید.

اغلب، برای نشان دادن توانایی های محدود پرسپترون های تک لایه در حل مسائل، به در نظر گرفتن به اصطلاح مشکل متوسل می شوند. XOR – OR انحصاری.

ماهیت کار به شرح زیر است. تابع منطقی XOR داده شده است - OR انحصاری. تابعی از دو آرگومان است که هر کدام می تواند صفر یا یک باشد. وقتی یکی از آرگومان ها برابر با یک باشد، اما نه هر دو، در غیر این صورت، مقدار را می گیرد. مشکل را می توان با استفاده از یک سیستم تک لایه، تک نورونی، دو ورودی، که در شکل زیر نشان داده شده است، نشان داد.

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

امتیاز معنی معنی خروجی مورد نیاز
0 0 0
1 0 1
0 1 1
1 1 0

یک نورون با دو ورودی می تواند یک سطح تصمیم را به شکل یک خط مستقیم دلخواه تشکیل دهد. برای اینکه شبکه تابع XOR مشخص شده در جدول بالا را پیاده سازی کند، باید خط را طوری قرار دهید که نقاط در یک طرف خط و نقاط در سمت دیگر قرار گیرند. با تلاش برای ترسیم چنین خط مستقیمی در شکل زیر، متقاعد شدیم که این غیرممکن است. این بدان معنی است که مهم نیست که چه مقادیری به وزن ها و آستانه اختصاص داده می شود، یک شبکه عصبی تک لایه قادر به بازتولید رابطه بین ورودی و خروجی مورد نیاز برای نمایش تابع XOR نیست.

با این حال، تابع XOR به راحتی توسط یک شبکه دو لایه و از بسیاری جهات تشکیل می شود. بیایید یکی از این روش ها را در نظر بگیریم. بیایید با افزودن یک لایه پنهان دیگر از نورون ها، شبکه را در شکل مدرن کنیم:

توجه داشته باشید که این شبکههمانطور که هست داده می شود، یعنی ما می توانیم فرض کنیم که او قبلا آموزش دیده است. اعداد بالای فلش ها مقادیر وزن های سیناپسی را نشان می دهند. به عنوان یک تابع فعال سازی، از یک تابع پرش منفرد با آستانه دارای نمودار زیر استفاده خواهیم کرد:

سپس نتیجه عملکرد چنین شبکه عصبی را می توان در قالب جدول زیر ارائه کرد:

امتیاز معنی معنی خروجی مورد نیاز
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

هر یک از دو نورون لایه اول یک سطح تصمیم گیری را به شکل یک خط مستقیم دلخواه تشکیل می دهد (صفحه را به دو نیم صفحه تقسیم می کند) و نورون لایه خروجی این دو راه حل را ترکیب می کند و یک سطح تصمیم گیری را تشکیل می دهد. شکل نواری که توسط خطوط مستقیم موازی نورون های لایه اول تشکیل شده است:

شبکه عصبی مورد استفاده در این مقاله برای حل مشکل XOR ابتدایی است و از قابلیت های شبکه های چندلایه بهره کامل نمی برد. بدیهی است که چند لایه است شبکه های عصبیتنها در حضور غیرخطی بودن، قدرت نمایش بیشتری نسبت به تک لایه ها دارند. و در این شبکه یک تابع فعال سازی خطی آستانه اعمال می شود. چنین شبکه ای را نمی توان به عنوان مثال با استفاده از یک الگوریتم پس انتشار آموزش داد.

مطلقاً همه ریز مدارهای دیجیتال از عناصر منطقی یکسانی تشکیل شده اند - "بلوک های سازنده" هر گره دیجیتال. این چیزی است که ما اکنون در مورد آن صحبت خواهیم کرد.

عنصر منطق- این مداری است که چندین ورودی و یک خروجی دارد. هر حالت از سیگنال ها در ورودی ها مربوط به یک سیگنال خاص در خروجی است.

پس عناصر چیست؟

عنصر "AND"

در غیر این صورت به آن "مرتبط" می گویند.

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

عنصر "AND" و جدول صدق آن به این صورت است:

از آنجایی که شما باید با هر دو فناوری روسی و بورژوازی ارتباط برقرار کنید. مستندات، من نمادهای گرافیکی نمادین (GID) عناصر را طبق استانداردهای ما و غیر ما ارائه خواهم کرد.

ما به جدول حقیقت نگاه می کنیم و اصل را در مغزمان روشن می کنیم. درک آن دشوار نیست: یک واحد در خروجی عنصر "AND" تنها زمانی رخ می دهد که واحدها به هر دو ورودی عرضه شوند. این نام عنصر را توضیح می دهد: واحدها باید هم در یکی و هم در ورودی دیگر باشند.

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

عنصر OR

به گونه ای دیگر، او را «تجزیه کننده» می نامند.

ما تحسین می کنیم:

باز هم، این نام برای خودش صحبت می کند.

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

عنصر NOTE

اغلب به آن "اینورتر" می گویند.

آیا لازم است در مورد کار او چیزی بگویم؟

عنصر NAND

گیت NAND دقیقاً مانند گیت AND کار می کند، فقط سیگنال خروجی کاملاً مخالف است. در جایی که عنصر "AND" باید خروجی "0" داشته باشد، عنصر "AND-NOT" باید یک خروجی داشته باشد. و برعکس. درک این موضوع از مدار معادل عنصر آسان است:

عنصر "NOR" (NOR)

همان داستان - یک عنصر "OR" با یک اینورتر در خروجی.

رفیق بعدی کمی حیله گر تر است:
عنصر انحصاری OR (XOR)

او اینگونه است:

عملیاتی که انجام می دهد اغلب "مدول اضافه 2" نامیده می شود. در واقع، جمع کننده های دیجیتال بر روی این عناصر ساخته می شوند.

بیایید به جدول حقیقت نگاه کنیم. واحد خروجی چه زمانی است؟ درست: زمانی که ورودی ها سیگنال های متفاوتی دارند. در یکی - 1، از سوی دیگر - 0. او چقدر حیله گر است.

مدار معادل چیزی شبیه به این است:

حفظ آن ضروری نیست.

در واقع اینها عناصر منطقی اصلی هستند. مطلقاً هر ریز مدار دیجیتالی بر اساس آنها ساخته شده است. حتی پنتیوم 4 مورد علاقه شما.

و در نهایت، چندین ریز مدار حاوی عناصر دیجیتال. شماره پایه های مربوطه ریز مدار در نزدیکی پایانه های عناصر نشان داده شده است. تمام تراشه های فهرست شده در اینجا 14 پایه دارند. برق به پایه های 7 (-) و 14 (+) عرضه می شود. ولتاژ منبع تغذیه - جدول را در پاراگراف قبل ببینید.

با شکل گفتار «یا... یا...» نشان داده می شود گزاره مرکب «یا الف یا ب» زمانی درست است که الف یا ب درست باشد، اما نه هر دو. V در غیر این صورتعبارت مرکب نادرست است

آن ها نتیجه درست است (برابر 1) اگر A برابر با B نیست (A≠B).

این عمل اغلب با تفکیک مقایسه می شود، زیرا آنها از نظر خصوصیات بسیار مشابه هستند، و هر دو شباهت هایی به حرف ربط "یا" در گفتار روزمره دارند. قوانین این عملیات را مقایسه کنید:

1. اگر درست باشد یا , یاهر دو به یکباره

2. اگر درست باشد یا، اما نههر دو به یکباره

عملیات مستثنی می کندگزینه دوم ("هر دو در یک زمان") و به همین دلیل "OR" انحصاری نامیده می شود. ابهامزبان طبیعی این است که ربط "یا" را می توان در هر دو مورد استفاده کرد.

5. مفهوم (نتیجه منطقی)با ترکیب دو گزاره در یک جمله با استفاده از شکل گفتاری "اگر ... پس ...." تشکیل می شود.

ضبط: A®B

یک گزاره ترکیبی که با عمل استلزام تشکیل می‌شود، اگر و تنها در صورتی نادرست است که یک نتیجه‌گیری نادرست (گزاره دوم) از یک مقدمه درست (گزاره اول) حاصل شود.

آن ها اگر 1 دلالت بر 0 داشته باشد، نتیجه 0 است، در موارد دیگر - 1.

به عنوان مثال، جمله "اگر عددی بر 10 بخش پذیر است، بر 5 بخش پذیر است" درست است زیرا هر دو عبارت اول و دوم درست هستند.

جمله "اگر عددی بر 10 بخش پذیر است بر 3 بخش پذیر است" نادرست است زیرا یک نتیجه گیری نادرست از یک فرض درست گرفته می شود.

"این چهار ضلعی مربع است" (الف) و "یک دایره را می توان دور یک چهار ضلعی مشخص کرد" (در). سپس عبارت ترکیبی به عنوان خوانده می شود "اگر یک چهار ضلعی یک مربع باشد، می توان دور آن دایره ای رسم کرد."

در گفتار معمولی رابط "اگر... پس"رابطه علت و معلولی بین گزاره ها را توصیف می کند. اما در عملیات منطقی به معنای عبارات توجهی نمی شود. فقط درستی یا نادرستی آنها در نظر گرفته می شود. بنابراین، نباید از «بی معنی بودن» مفاهیمی که از جملاتی که از نظر محتوا کاملاً نامرتبط هستند، خجالت کشید. به عنوان مثال، مانند این: "اگر رئیس جمهور ایالات متحده یک دموکرات است، پس زرافه ها در آفریقا هستند"، "اگر هندوانه توت است، پس بنزین در پمپ بنزین وجود دارد."

6. هم ارزی (برابری منطقی، ~ º Û) با ترکیب دو عبارت در یک جمله با استفاده از شکل گفتار "...اگر و فقط اگر..." تشکیل می شود.

یک دستور مرکب که توسط یک عملیات هم ارزی تشکیل می شود درست است اگر و فقط اگر هر دو گزاره به طور همزمان نادرست یا درست باشند.

به عنوان مثال، عبارات "کامپیوتر می تواند محاسبه کند اگر و فقط اگر روشن باشد" و "کامپیوتر نمی تواند محاسبه کند اگر و فقط اگر روشن نباشد" درست است زیرا هر دو عبارت ساده به طور همزمان درست هستند.


جداول حقیقت

برای هر عبارت مرکب (تابع منطقی)، می توان یک جدول صدق ساخت که درستی یا نادرستی آن را برای همه ترکیبات ممکن از مقادیر اولیه گزاره های ساده تعیین می کند.

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

اجازه دهید موارد فوق را منعکس کنیم عملیات منطقیدر جدول حقیقت:

در جبر گزاره‌ای، تمام توابع منطقی با تبدیل‌های منطقی را می‌توان به سه تابع اصلی تقلیل داد: جمع منطقی، ضرب منطقی و نفی منطقی.

اجازه دهید ثابت کنیم که عملیات ضمنی A®B معادل عبارت منطقی است:

عملیات انحصاری OR (غیر هم ارزی، مدول جمع دو) با یک نماد نشان داده می شود و تنها زمانی که A=1 و B=1 با OR منطقی متفاوت است.

بنابراین، نابرابری دو گزاره X1 و X2، عبارت Y نامیده می شود که اگر و تنها در صورتی درست است که یکی از این گزاره ها درست و دیگری نادرست باشد.

تعریف این عملیات را می توان به صورت جدول صدق نوشت (جدول 6):

جدول 6 - جدول حقیقت عملیات "EXCLUSIVE OR".

همانطور که از جدول 6 مشاهده می شود، منطق عملکرد عنصر با نام آن مطابقت دارد.

این همان عنصر "OR" با یک تفاوت کوچک است. اگر مقدار در هر دو ورودی برابر با یک منطقی باشد، خروجی عنصر "EXCLUSIVE OR" برخلاف عنصر "OR" یک نیست، بلکه صفر است.

عملیات EXCLUSIVE OR در واقع دو رقم باینری را برای یک مسابقه مقایسه می کند.

هر اتصال منطقی به عنوان عملیاتی بر روی گزاره های منطقی در نظر گرفته می شود و نام و نام خود را دارد (جدول 7).

جدول 7 - عملیات منطقی پایه

تعیین

عملیات

خواندن

نام عملیات

نامگذاری های جایگزین

نفی (وارونگی)

خط در بالا

ربط (ضرب منطقی)

تفکیک (اضافه منطقی)

اگر... پس

دلالت

سپس و تنها آن زمان

معادل سازی

یا... یا

انحصاری OR (مدول اضافه 2)

  1. ترتیب عملیات منطقی در یک عبارت منطقی پیچیده

سیستم عملیات منطقی وارونگی، ربط و تفکیک به شما امکان می دهد تا به طور دلخواه پیچیده بسازید. بیان منطقی.

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

1. وارونگی.

2. ربط.

3. تفکیک.

4. مفهوم.

5. هم ارزی.

از پرانتز برای تغییر ترتیب مشخص شده عملیات استفاده می شود.

  1. عبارات منطقی و جداول حقیقت

    1. عبارات بولی

هر عبارت ترکیبی را می توان در قالب یک فرمول (بیان منطقی) بیان کرد که شامل متغیرهای منطقیبیانگر عبارات و نشانه های عملیات منطقی،نشان دهنده توابع منطقی

برای نوشتن یک عبارت مرکب در قالب یک عبارت منطقی در یک زبان رسمی (زبان جبر منطق)، در یک عبارت مرکب باید گزاره های ساده و ارتباطات منطقی بین آنها را شناسایی کرد.

اجازه دهید به شکل یک عبارت منطقی عبارت مرکب "(2·2=5 یا 2∙2=4) و (2∙2≠5 یا 2∙) را بنویسیم. 2 4)".

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

A = "2 2=5" - نادرست (0)،

B = "2 2=4" - درست (1).

سپس عبارت ترکیبی را می توان به شکل زیر نوشت:

«( الفیادر) و (Ā orدر)».

اکنون باید با در نظر گرفتن توالی عملیات منطقی، عبارت را در قالب یک عبارت منطقی بنویسید. هنگام انجام عملیات منطقی، ترتیب اجرای آنها به شرح زیر تعریف می شود:

وارونگی، پیوند، تفکیک.

برای تغییر ترتیب مشخص شده می توان از پرانتز استفاده کرد:

اف = (الفvدر) & (Ā vدر).

صدق یا نادرستی گزاره های مرکب را می توان به طور صوری و با هدایت قوانین جبر گزاره ای و بدون اشاره به محتوای معنایی گزاره ها تعیین کرد.

اجازه دهید مقادیر متغیرهای منطقی را با عبارت منطقی جایگزین کنیم و با استفاده از جداول صدق عملیات منطقی پایه، مقدار تابع منطقی را بدست آوریم:

اف= (A v B) و ( Ā v B) = (0 v 1) & (1 v 0) = 1 & 1 = 1.

      جداول حقیقت

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

عبارات ساده با متغیرهایی (مثلاً A و B) مشخص می شوند.

هنگام ساخت جداول حقیقت، توصیه می شود با دنباله خاصی از اقدامات هدایت شوید:

    تعیین تعداد ردیف های جدول صدق ضروری است. برابر مقدار است ترکیبات ممکنمقادیر متغیرهای منطقی موجود در یک عبارت منطقی. اگر تعداد متغیرهای منطقی برابر باشد pکه:

تعداد خطوط = 2 n .

در مورد ما، تابع منطقی

دارای 2 متغیر است و بنابراین تعداد سطرهای جدول صدق باید 4 باشد.

    باید تعداد ستون های جدول صدق را تعیین کرد که برابر با تعداد متغیرهای منطقی به اضافه تعداد عملیات منطقی است.

در مورد ما، تعداد متغیرها دو است: A و B، و تعداد عملیات منطقی پنج است (جدول 8)، یعنی تعداد ستون های جدول صدق هفت است.

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

    لازم است جدول صدق را با ستون هایی پر کرد و عملیات منطقی پایه را به ترتیب مورد نیاز و مطابق با جداول صدق آنها انجام داد.

اکنون می توانیم مقدار یک تابع بولی را برای هر مجموعه ای از مقادیر متغیر بولی تعیین کنیم.

جدول 8 - جدول حقیقت یک تابع منطقی

© 2024 ermake.ru -- درباره تعمیر رایانه شخصی - پورتال اطلاعاتی