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: <...>