Boole

Serves as a general bitwise Boolean function

(Booleoperator int1 [int2...])

Arguments

*operator*-
An integer between 0 and 15 representing one of the 16 possible Boolean functions in two variables.

*int1, int2...*-
Integers.

Note that*Boole*will accept a single integer argument, but the result is unpredictable.

Successive integer arguments are bitwise (logically) combined based on this function and on the following truth table:

Boolean truth table |
||
---|---|---|

Int1 |
Int2 |
operator bit |

0 |
0 |
8 |

0 |
1 |
4 |

1 |
0 |
2 |

1 |
1 |
1 |

*int1* is paired with the corresponding bit of
*int2*, specifying one horizontal row of the
truth table. The resulting bit is either 0 or 1, depending on the
setting of the *operator* bit that corresponds
to this row of the truth table.

*operator*, the
resulting bit is 1; otherwise the resulting bit is 0. Some of the
values for *operator* are equivalent to the
standard Boolean operations AND, OR, XOR, and NOR.

Boole function bit values |
||
---|---|---|

Operator |
Operation |
Resulting bit is 1 if |

1 |
AND |
Both input bits are 1 |

6 |
XOR |
Only one of the two input bits is 1 |

7 |
OR |
Either or both of the input bits are 1 |

8 |
NOR |
Both input bits are 0 (1's complement) |

Return Values

An integer.

Examples

The following specifies a logical AND of the values 12 and 5:

Command: *(Boole 1 12
5)*

4

The following specifies a logical XOR of the values 6 and 5:

Command: *(Boole 6 6
5)*

3

*operator* to perform other
Boolean operations for which there are no standard names. For
example, if *operator* is 4, the resulting bits
are set if the corresponding bits are set in *int2* but not in *int1*:

Command: *(Boole 4 3
14)*

12