Bitwise Operators (LotusScript® Language)
An expression consisting of the bitwise operator Not and a numeric operand evaluates to an Integer or Long value (or to NULL if the operand is NULL). This number is the result of reversing the values of the bits in the binary representation of the operand (one's complement).
For example:
anInt% = 8
Print Bin$(anInt%)
' Output: 1000
anotherInt% = Not anInt%
Print Bin$(anotherInt%)
' Output: 11111111 11111111 11111111 11110111
An expression consisting of two numeric operands and a bitwise operator evaluates to an Integer or Long value (or to NULL if one of the operands is NULL). The rules that determine the data type of the result of a bitwise operation are:
- LotusScript® converts an EMPTY-valued operand to 0.
- LotusScript® rounds a floating-point operand to an integer. The data type of the operand is Long.
- If an operand is a date/time value, LotusScript® uses the numeric value of the date as the operand. The data type of the operand is Long.
The results of bitwise operations on two-operand expressions are:
Operator |
If bit n in expr1 is |
And bit n in expr2 is |
Then bit n in the result is |
---|---|---|---|
And |
0 |
0 |
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
|
Or |
0 |
0 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
1 |
|
Xor |
0 |
0 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
|
Eqv |
0 |
0 |
1 |
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
|
Imp |
0 |
0 |
1 |
0 |
1 |
1 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
For example:
anInt% = 10
anotherInt% = 5
aDouble# = 2.6
Print Bin$(anInt%)
' Output: 1010
Print Bin$(anotherInt%)
' Output: 101
Print Bin$(aDouble#)
' Output: 11
theResult% = anInt% And anotherInt%
Print Bin$(theResult%)
' Output: 0
theResult% = anInt% And aDouble#
Print Bin$(theResult%)
' Output: 10
theResult% = anInt% Or anotherInt%
Print Bin$(theResult%)
' Output: 1111
theResult% = anInt% Or aDouble#
Print Bin$(theResult%)
' Output: 1011
theResult% = anInt% Xor anotherInt%
Print Bin$(theResult%)
' Output: 1111
theResult% = anInt% Xor aDouble#
Print Bin$(theResult%)
' Output: 1001
theResult% = anInt% Eqv anotherInt%
Print Bin$(theResult%)
' Output: 11111111 11111111 11111111 11110000
theResult% = anInt% Eqv aDouble#
Print Bin$(theResult%)
' Output: 11111111 11111111 11111111 11110110
theResult% = anInt% Imp anotherInt%
Print Bin$(theResult%)
' Output: 11111111 11111111 11111111 11110101
theResult% = anInt% Imp aDouble#
Print Bin$(theResult%)
' Output: 11111111 11111111 11111111 11110111