public int hgetbits ( int N ) { totbit += N ; int val = 0 ; int pos = buf_byte_idx ; if ( pos + N < BUFSIZE ) { while ( N -- > 0 ) { val <<= 1 ; val |= ( ( buf [ pos ++ ] != 0 ) ? 1 : 0 ) ; } } else { while ( N -- > 0 ) { val <<= 1 ; val |= ( ( buf [ pos ] != 0 ) ? 1 : 0 ) ; pos = ( pos + 1 ) & BUFSIZE_MASK ; } } buf_byte_idx = pos ; return val ; }
Read a number bits from the bit stream .