bit.band(...ints) → number
Bitwise AND of all arguments.
lua
print(bit.band(0xF0, 0x18)) --> 16
bit.bor(...ints) → number
Bitwise OR.
lua
print(bit.bor(0x1, 0x8, 0x20)) --> 41
bit.bxor(...ints) → number
Bitwise XOR.
lua
print(bit.bxor(0xFF, 0x0F)) --> 240
bit.bnot(x: number) → number
Bitwise NOT (32-bit complement).
lua
print(bit.bnot(0)) --> -1
bit.badd, bsub, bmul, bdiv(a, b) → number
Integer arithmetic with 32-bit wrap.
lua
print(bit.badd(2147483647, 1)) --> -2147483648 (overflow wraps)
bit.lshift, rshift, arshift(x, n) → number
Logical/arithmetic shifts.
lua
print(bit.lshift(1, 8)) --> 256 print(bit.rshift(256, 4)) --> 16 print(bit.arshift(-8, 2)) --> -2 (signed)
bit.rol, ror(x, n) → number
Left/right rotate.
lua
print(bit.tohex(bit.rol(0x12345678, 8))) --> 34567812
bit.tobit(x: number) → number
Normalize to 32-bit signed int.
lua
print(bit.tobit(0xFFFFFFFF)) --> -1
bit.tohex(x: number, digits: number?) → string
Hex string. Negative
digits forces uppercase.
lua
print(bit.tohex(255)) --> "000000ff" print(bit.tohex(255, -4)) --> "00FF"
bit.bswap(x: number) → number
Byte-swap a 32-bit int (endianness flip).
lua
print(bit.tohex(bit.bswap(0x12345678))) --> "78563412"