multibitnums.c

# Class MultiBitNums

Class of multiple multi-bit data packed in a C string. The number of bits is fixed to an arbitrary value. For example, it can accommodate 11-bit integers.

### Function overview

Integer encoding/decoding (so far only decoding has been implemented):

- Each segment of data is assumed to be multi-bit (fixed-length) unsigned integer in network byte order (big endian).
- Note: integers of the system does not have to be big-endian (Only the binary data is interpreted as unsigned big-endian).

### Class Methods

`MultiBitNums.new( str, nbit [, nint] )`

  Creates a new object from a binary data (string) containing multi-bit segments.

  ARGUMENTS

  - str (String): binary data containing multi-bit data
  - nbit (Integer): length in bits of each segments contained in str
  - nint (Integer, can be omitted): number of nbit-bit data in str. If omitted, derived automatically from the length of str.

  RETURN VALUE

  - a MultiBitNums object

  ERRORS

  - exception is raised if nint is too large for the length of str.

### Instance Methods

`to_int32str`

  Converts into a string containing binary data of 32-bit integers of the system. Useful with NArray.

  ARGUMENTS

      (none)

  RETURN VALUE

  - a String (Its binary expression depends on the integer expression of the system).

  ERRORS

  - exception is raised if nbit (see MultiBitNums.new) is greater than 32.

  EXAMPLE

      mb = MultiBitNums.new(str, nbits)
      require "narray"           # download it from RAA at www.ruby-lang.org
      ary = NArray.to_na( mb, "int" )  # the data is read into a NArray ary