OR - mkilgore/QB64pe GitHub Wiki

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

Syntax

result = firstValue OR secondValue

Description

  • 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 true or false indicate whether a bit is set or not set:
Operands Logical operations
A B NOT B A AND B A OR B A XOR B A EQV B A IMP B
true true false true true false true true
true false true false true true false false
false true false false true true false true
false false true false false false true true
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.

Examples

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:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
⚠️ **GitHub.com Fallback** ⚠️