Русская Википедия:Логическая операция

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

В логике логи́ческими опера́циями называют действия, вследствие которых порождаются новые понятия, с использованием уже существующих. В более узком смысле, понятие логической операции используется в математической логике и программировании.

Формальная логика

Шаблон:Main Логические операции с понятиями — такие мыслительные действия, результатом которых являются понимание смысла либо изменение содержания или объёма понятий, а также образование новых понятий.

Операция, раскрывающая сущность понятия:

К операциям, которые связаны преимущественно с изменением содержания понятий, относятся:

К операциям, которые связаны преимущественно с изменением объёмов понятий, относятся:

Данные операции могут быть записаны математически с помощью теории множеств.

Переход же к математической логике связан с понятием суждений и установлением операций над ними с целью получения сложных суждений.

Математическая логика

Шаблон:Main Логическая операции (логический оператор, логическая связка, пропозициональная связка) — операция над высказываниями, позволяющая составлять новые высказывания путём соединения более простых[1].

В качестве основных обычно называют конъюнкцию (<math>\land</math> или &), дизъюнкцию (<math>\lor</math>), импликацию (<math>\to</math>), отрицание (<math>\neg</math>). В смысле классической логики логические связки могут быть определены через алгебру логики. В асинхронной секвенциальной логике определена логико-динамическая связка в виде операции венъюнкции (<math>\angle</math>).

Программирование

Шаблон:Main Логическая операции — в программировании операция над выражениями логического (булевского) типа, соответствующая некоторой операции над высказываниями в алгебре логики. Как и высказывания, логические выражения могут принимать одно из двух истинностных значений — «истинно» или «ложно». Логические операции служат для получения сложных логических выражений из более простых. В свою очередь, логические выражения обычно используются как условия для управления последовательностью выполнения программы.

В некоторых языках программирования (например, в языке C++ или Си) вместо логического типа или одновременно с ним используются числовые типы. В этом случае считается, что отличное от нуля значение соответствует логической истине, а ноль — логической лжи.

Значение отдельного бита также можно рассматривать как логическое, если считать, что 1 означает «истинно», а 0 — «ложно». Это позволяет применять логические операции к отдельным битам, к битовым векторам покомпонентно и к числам в двоичном представлении поразрядно. Такое одновременное применение логической операции к последовательности битов осуществляется с помощью побитовых логических операций. Побитовые логические операции используются для оперирования отдельными битами или группами битов, применяются для наложения битовых масок, выполнения различных арифметических вычислений.

Среди логических операций наиболее известны конъюнкция (&&), дизъюнкция (||), отрицание (!). Их нередко путают с битовыми операциями, хотя это разные вещи. Например, следующий код на языке Си:

if (action_required && some_condition()) 
{
    /* какие-то действия */
}

не выполнит вызов подпрограммы some_condition(), если значение логической переменной action_required ложно. При такой операции второй аргумент операции «&&» вообще не будет вычислен.

В языках программирования

В следующей таблице для некоторых языков программирования приведены встроенные операторы и функции, реализующие логические операции.

Язык НЕ И ИЛИ Искл. ИЛИ Эквив. Не экв. Другие
C++[2] ! && || ^ == !=
Fortran[3] .NOT. .AND. .OR. .XOR. .EQV. .NEQV.
Java[4] ! && || ^ == !=
Pascal[5] not and or xor = <>
PL/I[6] ¬ & | ¬ = ¬= BOOL
^ ^ ^=
Prolog[7] \+ , ;
Python[8] not and or ^ == !=
Turbo Basic[9] NOT AND OR XOR EQV <> IMP
JavaScript ! && || ^ == !=
C# ! & ||
==
!=
<imagemap>

Image:Logical connectives table.svg|380px rect 399 2 542 39 input A rect 400 39 540 73 input B rect 400 128 542 706 output f(A,B) rect 3 128 398 163 X and ¬X rect 3 162 398 199 A and B rect 3 198 398 235 ¬A and B rect 4 234 399 273 B rect 3 273 398 309 A and ¬B rect 2 308 397 344 A rect 2 344 396 379 A xor B rect 2 379 397 415 A or B rect 3 419 396 454 ¬A and ¬B rect 3 453 395 489 A xnor B rect 3 489 396 525 ¬A rect 3 525 396 560 ¬A or B rect 3 563 397 601 ¬B rect 2 600 395 636 A or ¬B rect 2 634 398 671 ¬A or ¬B rect 3 670 397 706 X or ¬X desc none </imagemap>

<imagemap>

Image:Logical connectives Hasse diagram.svg|350px rect 326 28 416 200 X or ¬X rect 81 233 166 409 ¬A or ¬B rect 260 231 349 409 A or ¬B rect 393 230 481 409 ¬A or B rect 574 232 663 408 A or B rect 13 436 103 617 ¬B rect 147 438 235 617 ¬A rect 279 440 368 616 A xor B rect 375 440 464 617 A xnor B rect 507 439 595 617 A rect 639 438 732 617 B rect 79 647 168 826 ¬A and ¬B rect 260 647 349 826 A and ¬B rect 392 646 482 826 ¬A and B rect 574 646 663 826 A and B rect 327 853 417 1035 X and ¬X desc none </imagemap>

(file) (file) (zoom in)

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Вс Шаблон:Логика