Options
All
  • Public
  • Public/Protected
  • All
Menu

Class BitArray

A simple, fast array of bits, represented compactly by an array of ints internally.

author

Sean Owen

Hierarchy

  • BitArray

Index

Constructors

constructor

  • new BitArray(size?: number, bits?: Int32Array): BitArray

Properties

Private bits

bits: Int32Array

Private size

size: number

Methods

appendBit

  • appendBit(bit: boolean): void

appendBitArray

appendBits

  • appendBits(value: number, numBits: number): void
  • Appends the least-significant bits, from value, in order from most-significant to least-significant. For example, appending 6 bits from 0x000001E will append the bits 0, 1, 1, 1, 1, 0 in that order.

    Parameters

    • value: number

      {@code int} containing bits to append

    • numBits: number

      bits from value to append

    Returns void

clear

  • clear(): void

clone

Private ensureCapacity

  • ensureCapacity(size: number): void

equals

  • equals(o: any): boolean

flip

  • flip(i: number): void

get

  • get(i: number): boolean

getBitArray

  • getBitArray(): Int32Array
  • Returns Int32Array

    underlying array of ints. The first element holds the first 32 bits, and the least significant bit is bit 0.

getNextSet

  • getNextSet(from: number): number
  • see

    #getNextUnset(int)

    Parameters

    • from: number

      first bit to check

    Returns number

    index of first bit that is set, starting from the given index, or size if none are set at or beyond this given index

getNextUnset

  • getNextUnset(from: number): number
  • see

    #getNextSet(int)

    Parameters

    • from: number

      index to start looking for unset bit

    Returns number

    index of next unset bit, or {@code size} if none are unset until the end

getSize

  • getSize(): number

getSizeInBytes

  • getSizeInBytes(): number

hashCode

  • hashCode(): number

isRange

  • isRange(start: number, end: number, value: boolean): boolean
  • Efficient method to check if a range of bits is set, or not set.

    throws

    IllegalArgumentException if end is less than start or the range is not contained in the array

    Parameters

    • start: number

      start of range, inclusive.

    • end: number

      end of range, exclusive

    • value: boolean

      if true, checks that bits in range are set, otherwise checks that they are not set

    Returns boolean

    true iff all bits are set or not set in range, according to value argument

reverse

  • reverse(): void

set

  • set(i: number): void

setBulk

  • setBulk(i: number, newBits: number): void
  • Sets a block of 32 bits, starting at bit i.

    Parameters

    • i: number

      first bit to set

    • newBits: number

      the new value of the next 32 bits. Note again that the least-significant bit corresponds to bit i, the next-least-significant to i+1, and so on.

    Returns void

setRange

  • setRange(start: number, end: number): void
  • Sets a range of bits.

    Parameters

    • start: number

      start of range, inclusive.

    • end: number

      end of range, exclusive

    Returns void

toBytes

  • toBytes(bitOffset: number, array: Uint8Array, offset: number, numBytes: number): void
  • Parameters

    • bitOffset: number

      first bit to start writing

    • array: Uint8Array

      array to write into. Bytes are written most-significant byte first. This is the opposite of the internal representation, which is exposed by {@link #getBitArray()}

    • offset: number

      position in array to start writing

    • numBytes: number

      how many bytes to write

    Returns void

toString

  • toString(): string

xor

Static Private makeArray

  • makeArray(size: number): Int32Array

Generated using TypeDoc