﻿﻿ OR - QB64 Wiki

OR

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

firstvalue OR secondvalue

• 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.

The results of the bitwise logical operations, where 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 BA XOR BA EQV BA 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.
This allows relational tests to be inverted and combined using the bitwise logical operations.

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