Bit
Bit manipulation functions for working with 32-bit unsigned integers. All functions take 32-bit unsigned integers and return a signed 32-bit result.
TIP
If you need unsigned results, use Lua's built-in bit32 library instead.
bit.badd
Adds two or more integers together using bitwise addition.
lua
bit.badd(...: uint) -> intExample
lua
print(bit.badd(10, 20)) --> 30
print(bit.badd(1, 2, 3, 4)) --> 10bit.bsub
Subtracts two or more integers (left to right).
lua
bit.bsub(...: uint) -> intExample
lua
print(bit.bsub(100, 30)) --> 70
print(bit.bsub(100, 20, 10)) --> 70bit.bmul
Multiplies two or more integers together.
lua
bit.bmul(...: uint) -> intExample
lua
print(bit.bmul(5, 10)) --> 50
print(bit.bmul(2, 3, 4)) --> 24bit.bdiv
Divides two or more integers (left to right).
lua
bit.bdiv(...: uint) -> intExample
lua
print(bit.bdiv(100, 10)) --> 10
print(bit.bdiv(100, 2, 5)) --> 10bit.bswap
Inverts the endianness (byte order) of a value.
lua
bit.bswap(value: uint) -> intExample
lua
print(bit.bswap(0x12345678)) --> 0x78563412bit.rol
Rotates a value left by n bits.
lua
bit.rol(value: uint, n: uint) -> int| Parameter | Type | Description |
|---|---|---|
value | uint | The value to rotate |
n | uint | Number of bits to rotate |
Example
lua
print(bit.rol(1, 4)) --> 16bit.ror
Rotates a value right by n bits.
lua
bit.ror(value: uint, n: uint) -> int| Parameter | Type | Description |
|---|---|---|
value | uint | The value to rotate |
n | uint | Number of bits to rotate |
Example
lua
print(bit.ror(16, 4)) --> 1bit.tobit
Converts a value into the proper form for bitwise operations (normalizes to signed 32-bit integer).
lua
bit.tobit(value: uint) -> intExample
lua
print(bit.tobit(0xFFFFFFFF)) --> -1
print(bit.tobit(42)) --> 42bit.tohex
Converts a value to a hexadecimal string representation.
lua
bit.tohex(value: uint) -> stringExample
lua
print(bit.tohex(255)) --> "000000ff"
print(bit.tohex(0xDEAD)) --> "0000dead"