Template:LogicalTruthPlugin: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Table 4: The logical operations and its results. | Table 4: The logical operations and its results. | ||
In this table, '''A''' and '''B''' are the [[Expression|Expressions]] to invert or combine. | |||
Both may be results of former [[Boolean]] evaluations. | |||
┌────────────────────────────────────────────────────────────────────────┐ | ┌────────────────────────────────────────────────────────────────────────┐ | ||
│ ''' | │ '''Logical Operations''' │ | ||
├───────┬───────┬───────┬─────────┬────────┬─────────┬─────────┬─────────┤ | ├───────┬───────┬───────┬─────────┬────────┬─────────┬─────────┬─────────┤ | ||
│ A │ B │ [[NOT]] B │ A [[AND]] B │ A [[OR]] B │ A [[XOR]] B │ A [[EQV]] B │ A [[IMP]] B │ | │ '''A''' │ '''B''' │ [[NOT]] '''B''' │ '''A''' [[AND]] '''B''' │ '''A''' [[OR]] '''B''' │ '''A''' [[XOR]] '''B''' │ '''A''' [[EQV]] '''B''' │ '''A''' [[IMP]] '''B''' │ | ||
├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ | ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ | ||
│ '''true''' │ '''true''' │ false │ true │ true │ false │ true │ true │ | │ '''true''' │ '''true''' │ false │ true │ true │ false │ true │ true │ | ||
Line 17: | Line 17: | ||
│ '''false''' │ '''false''' │ true │ false │ false │ false │ true │ true │ | │ '''false''' │ '''false''' │ true │ false │ false │ false │ true │ true │ | ||
└───────┴───────┴───────┴─────────┴────────┴─────────┴─────────┴─────────┘ | └───────┴───────┴───────┴─────────┴────────┴─────────┴─────────┴─────────┘ | ||
'''Note:''' In most BASIC languages incl. QB64 these are '''bitwise''' operations, | |||
hence the logic is performed for each corresponding bit in both | |||
operators, where '''true''' or '''false''' indicates whether a bit is '''set''' or | |||
'''not set'''. The outcome of each bit is then placed into the respective | |||
position to build the bit pattern of the final result value. | |||
As all [[Relational Operations]] return | As all [[Relational Operations]] return negative one (-1, '''all bits set''') for | ||
'''true''' and | '''true''' and zero (0, '''no bits set''') for '''false''', this allows us to use these | ||
bitwise logical operations to invert or combine any relational checks, | bitwise logical operations to invert or combine any relational checks, | ||
as the outcome is the same for each bit and so always results into a | as the outcome is the same for each bit and so always results into a | ||
'''true''' (-1) or '''false''' (0) again for further evaluations. | '''true''' (-1) or '''false''' (0) again for further evaluations. | ||
{{FixedEnd}} | {{FixedEnd}} |
Latest revision as of 00:28, 15 December 2022
Table 4: The logical operations and its results. In this table, A and B are the Expressions to invert or combine. Both may be results of former Boolean evaluations. ┌────────────────────────────────────────────────────────────────────────┐ │ Logical Operations │ ├───────┬───────┬───────┬─────────┬────────┬─────────┬─────────┬─────────┤ │ A │ B │ NOT B │ A AND B │ A OR B │ A XOR B │ A EQV B │ A IMP B │ ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ │ true │ true │ false │ true │ true │ false │ true │ true │ ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ │ true │ false │ true │ false │ true │ true │ false │ false │ ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ │ false │ true │ false │ false │ true │ true │ false │ true │ ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤ │ false │ false │ true │ false │ false │ false │ true │ true │ └───────┴───────┴───────┴─────────┴────────┴─────────┴─────────┴─────────┘ Note: In most BASIC languages incl. QB64 these are bitwise operations, hence the logic is performed for each corresponding bit in both operators, where true or false indicates whether a bit is set or not set. The outcome of each bit is then placed into the respective position to build the bit pattern of the final result value. As all Relational Operations return negative one (-1, all bits set) for true and zero (0, no bits set) for false, this allows us to use these bitwise logical operations to invert or combine any relational checks, as the outcome is the same for each bit and so always results into a true (-1) or false (0) again for further evaluations. |