Skip to content

Buffer Bitwise#

This converter applies bitwise operations to the value. Valid operations are AND (&), OR (|), NOT (~), Shift Left (\<\<), Shift Right (>>) without sign propagation. It also has the Mask that behaves the same as AND. It receives a Buffer object, which is an object capable of manipulating streams of binary.

Settings#

Name Data Type Possible Values Description
operation Enum AND
OR
NOT
Shift Left
Shift Right
Mask
Type of bitwise operation to perform over the input buffer
argument Integer Argument to pass into the bitwise operation selected (example for Shift Right: input >> argument)

Table 1: Settings

image121

Examples#

Using a single-byte input buffer, each operation acts on the value bit-by-bit:

Input (bin) operation argument Output (bin) Output (dec)
0000 1110 AND 3 0000 0010 2
0000 1000 Mask 0 0000 0000 0
0000 1110 OR 3 0000 1111 15
0000 1111 Shift Left 1 0001 1110 30
0000 1111 Shift Right 1 0000 0111 7
0000 1101 NOT (ignored) 1111 0010 242

Table 2: Examples

Invalid Input#

This converter fails in any of the cases below. For what happens to the rest of the chain when a converter fails (the error is logged, reported for monitoring, and the next task does not run), see Converters.

Input operation Result
Non-Buffer (e.g., String) any Fails with Given input value is not an instance of a Buffer.
Buffer longer than 6 bytes any Fails with Invalid size of buffer '<length>'. Must be up to 6 bytes long
any Buffer UnknownOp Fails with Unknown bitwise operation '<operation>'.
1000 0001 AND with argument 128 Fails with The value of "value" is out of range. It must be >= -128 and <= 127. Received 128. The result is written as a signed number of the input's length, so any result outside that range fails.

Table 3: Invalid Input