Difference between revisions of "Buffer.readbits"

From GiderosMobile
Line 40: Line 40:
 
print(val1, val2) -- Output: 10 11
 
print(val1, val2) -- Output: 10 11
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
'''Key Details'''
 +
bitOffset: The starting bit position (not byte).
 +
bitCount: Number of bits to read (0-32).
 +
Behavior: It treats the result as an unsigned integer.
 +
Equivalents: readbits(b, 0, 8) equals buffer.readu8(b, 0), readbits(b, 0, 16) equals buffer.readu16(b, 0).
 +
Limits: As of late 2025, readbits is used for packing small numbers within bytes or reading 24-bit integers.
  
 
{{buffer_luau}}
 
{{buffer_luau}}

Revision as of 13:44, 3 February 2026

Available since: Gideros 2026.1
Class: buffer_luau

Description

Reads a range of bitCount bits from the buffer, at specified offset bitOffset, into an unsigned integer.

(number) = buffer.readbits(b,bitOffset,bitCount)

bitCount must be in [0, 32] range.

Parameters

b: (buffer) the buffer
bitOffset: (number) offset from the beginning of the buffer memory, starting from 0
bitCount: (number) length to read

Return values

Returns (number) the bitCount bits from the buffer

Example

-- ! generated by AI !
-- Create a 4-byte buffer (32 bits)
local b = buffer.create(4)

-- Write a 24-bit value (e.g., 0xABCDEF) starting at bit 0
buffer.writebits(b, 0, 24, 0xABCDEF)

-- Read the 24 bits back
local value = buffer.readbits(b, 0, 24)
print(string.format("0x%X", value)) -- Output: 0xABCDEF

-- Example: Reading packed 4-bit values (nibbles)
buffer.writebits(b, 0, 4, 0xA) -- First 4 bits: 1010
buffer.writebits(b, 4, 4, 0xB) -- Next 4 bits: 1011

local val1 = buffer.readbits(b, 0, 4) -- Reads 0xA
local val2 = buffer.readbits(b, 4, 4) -- Reads 0xB
print(val1, val2) -- Output: 10 11

Key Details

bitOffset: The starting bit position (not byte).
bitCount: Number of bits to read (0-32).
Behavior: It treats the result as an unsigned integer.
Equivalents: readbits(b, 0, 8) equals buffer.readu8(b, 0), readbits(b, 0, 16) equals buffer.readu16(b, 0).
Limits: As of late 2025, readbits is used for packing small numbers within bytes or reading 24-bit integers.