|
- Use
- Binary operators
- Binary AND, OR and exclusive OR
- Binary NOT
- Shift operators
- Syntaxes
- Notes
- Operator for direct access to the bits
- Access to a bit
- Access to an integer on 1, 2 or 4 bytes
- Access to the value of several bits
Binary AND, OR and exclusive OR The following syntaxes can be used: - Binary AND: <Value 1> & <Value 2>
- Binary OR: <Value 1> | <Value 2>
- Binary exclusive OR: <Value 1> || <Value 2>
The type of result depends on the type of the operands: | | | | Value 2 Value 1 | Integer on 4 | Integer on 8 | Other | Integer on 4 | Integer on 4 | Integer on 8 | Integer on 4 | Integer on 8 | Integer on 8 | Integer on 8 | Integer on 8 | Other | Integer on 4 | Integer on 8 | Integer on 8 |
Binary NOT The syntax is as follows: ~ <Value> The type of result depends on the operand type: | | Operand | Result | Integer on 4 | Integer on 4 | Integer on 8 | Integer on 8 | Other | Integer on 8 |
Syntaxes - Offset to left:
<Value 1> bitLeftShift <Value 2>> bitLeftShift(<Value 1>, <Value 2>)
- Offset to right:
<Value 1> bitRightShift <Value 2>> bitRightShift(<Value 1>, <Value 2>)
Notes - The bits of <Value 1> are shifted from <Value 2> bits to the right or to the left.
For example:
bitLeftShift(4,1) // Returns 8
Indeed, 4 in decimal corresponds to 0100 in binary. Shifted from 1 bit to the left, we get 1000 in binary that corresponds to 8 in decimal.
bitRightShift(4,2) // Returns 1
Indeed, 4 in decimal corresponds to 0100 in binary. Shifted from 2 bits to the right, we get 0001 in binary that corresponds to 1 in decimal. - The bits that exceed the size of <Value 1> are ignored. For example:
bitLeftShift(4,30) // Returns 0 bitRightShift(4,4) // Returns 0
- If <Value 2> is greater than the size of <Value 1> (32 for a 4-byte integer and 64 for a 8-byte integer), the result is always equal to 0. For example:
bitLeftShift(4,35) // Returns 0
- The type of result depends on the type of the operand:
| | Operand Value 1 | Result | Integer on 4 | Integer on 4 | Integer on 8 | Integer on 8 | Other | Integer on 8 |
 The operator for left binary shift will reinject from the right the bits that exceed the operand size. The operator for right binary shift will reinject from the left the bits that exceed the operand size. For example:
e is int on 4 res is int on 4 e = 1 res = e bitLeftShift 32 // Returns 0 in WINDEV and 1 in Java
Operator for direct access to the bits
This page is also available for…
|
|
|
| |
| Click [Add] to post a comment |
|
| |
|
| |
| |
| |
| |
| |
| |
| | |
| |