Bitwise
Functions for doing bitwise operations.
Bitwise AND
Bitwise OR
Bitwise XOR
Flip each bit individually, often called bitwise NOT
Count the number of leading zero bits in an integer.
countLeadingZeros 0 == 32
countLeadingZeros 1 == 31
countLeadingZeros 0xFFFF == 16
Bit Shifts
Shift bits to the left by a given offset, filling new bits with zeros. This can be used to multiply numbers by powers of two.
shiftLeftBy 1 5 == 10
shiftLeftBy 5 1 == 32
Shift bits to the right by a given offset, filling new bits with whatever is the topmost bit. This can be used to divide numbers by powers of two.
shiftRightBy 1 32 == 16
shiftRightBy 2 32 == 8
shiftRightBy 1 -32 == -16
This is called an arithmetic right shift, often written >>
, and
sometimes called a sign-propagating right shift because it fills empty spots
with copies of the highest bit.
Shift bits to the right by a given offset, filling new bits with zeros.
shiftRightZfBy 1 32 == 16
shiftRightZfBy 2 32 == 8
shiftRightZfBy 1 -32 == 2147483632
This is called an logical right shift, often written >>>
, and
sometimes called a zero-fill right shift because it fills empty spots with
zeros.