In other languages such as Pascal, Logical comparisons are treated like a Mathmatical formula. Then after the formula is calculated, any non-zero number is considered TRUE. Consequently, the result of that formula can be assigned to another variable if so desired.
In PicBasic, that would require additional time, temporary variables and code space. Things that don't matter on a computer with GIGA hz, ram, and disk space. But matters alot for a PIC.
Fotunately, the same things can be accomplished in different ways. For instance...
Is_Switch_aktiv= ( Flag_Switch_activ_on_ = Switch )
can be like this...
Is_Switch_aktiv= ( Flag_Switch_activ_on_ ^/ Switch ) ; ^/ is "Not Exclusive OR"
To see how that works we can look at the Truth Tables.
<table border="0" cellspacing="7" cellpadding="4"> <tr> <td> <table CELLSPACING="0" BORDER="1" CELLPADDING="2" WIDTH="202"> <tr> <td WIDTH="99%" HEIGHT="16" colspan="3"> <p align="center">Equals sign</td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">A</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">B</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">Out</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> </tr> </table> </td> <td> <table CELLSPACING="0" BORDER="1" CELLPADDING="2" WIDTH="202"> <tr> <td WIDTH="99%" HEIGHT="16" colspan="3"> <p align="center">Exclusive OR ^ </td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">A</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">B</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">Out</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"> <p ALIGN="CENTER"><font face="Arial" size="2">0</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"> <p ALIGN="CENTER"><font face="Arial" size="2">1</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"> <p ALIGN="CENTER"><font face="Arial" size="2">1</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"> <p ALIGN="CENTER"><font face="Arial" size="2">0</font></td> </tr> </table> </td> <td> <table CELLSPACING="0" BORDER="1" CELLPADDING="2" WIDTH="202"> <tr> <td WIDTH="99%" HEIGHT="16" colspan="3"> <p align="center">Not Exclusive OR ^/</td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">A</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">B</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">Out</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">0</font></td> </tr> <tr> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> <td WIDTH="33%" HEIGHT="16"><font FACE="Arial" SIZE="2"> <p ALIGN="CENTER">1</font></td> </tr> </table> </td> </tr> </table>
An Exclusive OR outputs a 1 when either of the inputs are a 1 but not both. This is the same as != in a logical expression.
Since we want "=", simply invert the XOR result with "^/".
<br>
Bookmarks