bit Module¶
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2014-12-24 | https://github.com/LuaDist/bitlib, Zeroday | Zeroday | bit.c |
Bit manipulation support, on the integer type used by the Lua VM. On 5.1 this will be 32bit, whereas on 5.3 it may be either 32bit (default) or 64bit if configured for 64bit integers.
bit.arshift()¶
Arithmetic right shift a number equivalent to value >> shift
in C.
Syntax¶
bit.arshift(value, shift)
Parameters¶
value
the value to shiftshift
positions to shift
Returns¶
the number shifted right (arithmetically)
bit.band()¶
Bitwise AND, equivalent to val1 & val2 & ... & valn
in C.
Syntax¶
bit.band(val1, val2 [, ... valn])
Parameters¶
val1
first AND argumentval2
second AND argument...valn
...nth AND argument
Returns¶
the bitwise AND of all the arguments (number)
bit.bit()¶
Generate a number with a 1 bit (used for mask generation). Equivalent to 1 << position
in C.
Syntax¶
bit.bit(position)
Parameters¶
position
position of the bit that will be set to 1
Returns¶
a number with only one 1 bit at position (the rest are set to 0)
bit.bnot()¶
Bitwise negation, equivalent to `~value in C.
Syntax¶
bit.bnot(value)
Parameters¶
value
the number to negate
Returns¶
the bitwise negated value of the number
bit.bor()¶
Bitwise OR, equivalent to val1 | val2 | ... | valn
in C.
Syntax¶
bit.bor(val1, val2 [, ... valn])
Parameters¶
val1
first OR argument.val2
second OR argument....valn
...nth OR argument
Returns¶
the bitwise OR of all the arguments (number)
bit.bxor()¶
Bitwise XOR, equivalent to val1 ^ val2 ^ ... ^ valn
in C.
Syntax¶
bit.bxor(val1, val2 [, ... valn])
Parameters¶
val1
first XOR argumentval2
second XOR argument...valn
...nth XOR argument
Returns¶
the bitwise XOR of all the arguments (number)
bit.clear()¶
Clear bits in a number.
Syntax¶
bit.clear(value, pos1 [, ... posn])
Parameters¶
value
the base numberpos1
position of the first bit to clear...posn
position of thet nth bit to clear
Returns¶
the number with the bit(s) cleared in the given position(s)
bit.isclear()¶
Test if a given bit is cleared.
Syntax¶
bit.isclear(value, position)
Parameters¶
value
the value to testposition
bit position to test
Returns¶
true
if the bit at the given position is 0, false
othewise
bit.isset()¶
Test if a given bit is set.
Syntax¶
bit.isset(value, position)
Parameters¶
value
the value to testposition
bit position to test
Returns¶
true
if the bit at the given position is 1, false
otherwise
bit.lshift()¶
Left-shift a number, equivalent to value << shift
in C.
Syntax¶
bit.lshift(value, shift)
Parameters¶
value
the value to shiftshift
positions to shift
Returns¶
the number shifted left
bit.rshift()¶
Logical right shift a number, equivalent to ( unsigned )value >> shift
in C.
Syntax¶
bit.rshift(value, shift)
Parameters¶
value
the value to shift.shift
positions to shift.
Returns¶
the number shifted right (logically)
bit.set()¶
Set bits in a number.
Syntax¶
bit.set(value, pos1 [, ... posn ])
Parameters¶
value
the base number.pos1
position of the first bit to set....posn
position of the nth bit to set.
Returns¶
the number with the bit(s) set in the given position(s)