3.6 KiB
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)