@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
See also Mathematical Functions @abs @acos @asin @atan @atan2 @between @bit_and @bit_or @bit_shiftl @bit_shiftr @ceil @clear @cos @cosh @exp @floor @knn_create @knn_rebuild @knn_delete @knn_rnd @knn_search @knn_rsearch @knn_scan @knn_rscan @knn_combine @knn_rcombine @log @log10 @log2 @max @min @ode_solve @pow @rand @rand_int @random @rnd_bernoulli @rnd_binomial @rnd_exponential @rnd_gamma @rnd_geometric @rnd_normal @rnd_uniform_float @rnd_uniform_int @round @sin @sinh @sqrt @tan @y0 @y1