EQV: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The EQV operator returns a value based on the ''equivalence'' of two conditions or values. {{PageSyntax}} : {{Parameter|result}} = {{Parameter|firstValue}} EQV {{Parameter|secondValue}} {{PageDescription}} * Returns true (-1) when both values are the same (''equivalent''). * Turns a bit on if both bits are the same, turns a bit off if both bits are different. {{Template:LogicalTruthTable}} {{PageSeeAlso}} * Binary * Boolean {{PageNavigation}}")
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:
* Returns true (-1) when both values are the same (''equivalent'').
* Returns true (-1) when both values are the same (''equivalent'').
* Turns a bit on if both bits are the same, turns a bit off if both bits are different.
* Turns a bit on if both bits are the same, turns a bit off if both bits are different.
 
{{LogicalTruthPlugin}}
 
{{Template:LogicalTruthTable}}




{{PageSeeAlso}}
{{PageSeeAlso}}
* [https://qb64phoenix.com/forum/showthread.php?tid=1187 Featured in our "Keyword of the Day" series]
* [[Binary]]
* [[Binary]]
* [[Boolean]]
* [[Boolean]]

Latest revision as of 17:56, 25 May 2024

The EQV operator returns a value based on the equivalence of two conditions or values.


Syntax

result = firstValue EQV secondValue


Description

  • Returns true (-1) when both values are the same (equivalent).
  • Turns a bit on if both bits are the same, turns a bit off if both bits are different.
               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                           │
  ├───────┬───────┬───────┬─────────┬────────┬─────────┬─────────┬─────────┤
  │   ABNOT BA AND BA OR BA XOR BA EQV BA IMP B │
  ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤
  │ truetrue  │ false │  true   │ true   │  false  │  true   │  true   │
  ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤
  │ truefalse │ true  │  false  │ true   │  true   │  false  │  false  │
  ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤
  │ falsetrue  │ false │  false  │ true   │  true   │  false  │  true   │
  ├───────┼───────┼───────┼─────────┼────────┼─────────┼─────────┼─────────┤
  │ falsefalse │ 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.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link