@bit_shiftl(int, int)
@bit_shiftr(int, int)
@bit_or(int, int)
@bit_and(int, int)


Function @bit_shiftl sees its first argument (an integer) as a series of 64 bits. The second argument is the number of positions these bits will be shifted to the left. The last digits on the right are filled with a zero. Please note that this is not circular shift.

Function @bit_shiftr is similar but the shift is done to the right.

Function @bit_and and @bit_or see their arguments as a series of 64 bits and they apply the corresponding logical operation, bit-wise.

For example

   @bit_shiftl(123, 1) == 246
@bit_shiftrl(256, 2) == 64


shifting an integer to the left by $n$ positions corresponds to a multiplication by $2^n$ and accordingly, shifting to the rigth divides by $2^n$.

Integer $1$ is represented by the sequence "...001" and integer $2$ by "...010". Sot the results of the bit wise operations between $1$ and $2$ are:

   @bit_or(1, 2) == 3
@bit_and(1, 2) == 0