@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