Skip to content

Bitwise expressions¤

Overview¤

The bit shifts treat a value as a series of bits, the binary digits of the value are moved, or shifted, to the left or right.

  • !SHL, !SHR: Left and right logical shifts.
  • !SAL, !SAR: Left and right arithmetic shifts.
  • !ROL, !ROR: Circular rotations to the left and right.

There are also bitwise !AND, !OR and !NOT expression, at Logic chapter.


!SHL¤

Left logical shift.

Type: Mapping.

!SHL
what: <...>
by: <...>

Tip

Left shifts could be used as fast multiplication by 2, 4, 8 and so on.

Example

!SHL
what: 9
by: 2

9 is represented by the binary value 1001. The left logical shift moves the bits to the left by 2. The result is 100100, which is 36 in the base-ten system. This is the same result as 9 * (2^2).


!SHR¤

Right logical shift.

Type: Mapping.

!SHR
what: <...>
by: <...>

Tip

Right shifts could be used as fast division by 2, 4, 8 and so on.

Example

!SHR
what: 16
by: 3

16 is represented by 10000. The logical shift moves the bits to the right by 3. The result is 10, which is 2 in base-ten system. This is the same result as 16 / (2^3).


!SAL¤

Left arithmetic shift.

Type: Mapping.

!SAL
what: <...>
by: <...>

Example

!SAL
what: 60
by: 2

!SAR¤

Right arithmetic shift.

Type: Mapping.

!SAR
what: <...>
by: <...>

!ROL¤

Circular left rotation.

Type: Mapping.

!ROL
what: <...>
by: <...>

!ROR¤

Circular right rotation.

Type: Mapping.

!ROR
what: <...>
by: <...>