# OR

### From QB64 Wiki

The **OR** numerical operator returns a comparative bit value of 1 if either value's bit is on.

- firstvalue
**OR**secondvalue

- firstvalue

- If both bits are off, it returns 0.
- If one or both bits are on then it returns 1.
- OR never turns off a bit and can be used only to turn a bit on.

*A*and

*B*are operands, and

*T*and

*F*indicate that a bit is set or not set:

Operands Operations A B `NOT B``A AND B``A`**OR**B`A XOR B``A EQV B``A IMP B`T T F T T F T T T F T F T T F F F T F F T T F T F F T F F F T T

**Relational Operations return negative one (-1, all bits set) and zero (0, no bits set) for**

*true*and*false*, respectively.

*Example 1:* OR always turns bits on! Never off.

* *
a% = 5 ' 101 binary
b% = 4 ' 100 binary
results% = a% **OR** b% ' still 101 binary using OR
PRINT "Results% ="; results% * *

Results% = 5

*Example 2:* Turning a data register bit on.

* *
address% = 888 'parallel port data register
bytevalue% = INP(address%)
OUT address%, bytevalue% **OR** 4 * *

*Explanation:*The third register bit is only turned on if it was off. This ensures that a bit is set. OR could set more bits on with a sum of bit values such as: OUT address%, 7 would turn the first, second and third bits on. 1 + 2 + 4 = 7

*See also:*

*Navigation:*