/// <summary>
        /// Convert current System.Collections.JIBitArray to a long array
        /// </summary>
        /// <returns></returns>
        public long[] GetLong()
        {
            int ArrayBound = (int)Math.Ceiling((double)this._bits.Count / 64);

            long[]     Bits = new long[ArrayBound];
            JIBitArray Temp = new JIBitArray();

            Temp._bits = this._bits;
            Temp       = FixLength(Temp, ArrayBound * 64);
            for (int i = 0; i < Temp._bits.Count; i += 64)
            {
                Bits[i / 64] = Convert.ToInt64(Temp.SubJIBitArray(i, 64).ToString(), 2);
            }
            return(Bits);
        }
        /// <summary>
        /// Convert current System.Collections.JIBitArray to a byte array
        /// </summary>
        /// <returns></returns>
        public byte[] GetBytes()
        {
            int ArrayBound = (int)Math.Ceiling((double)this._bits.Count / 8);

            byte[]     Bits = new byte[ArrayBound];
            JIBitArray Temp = new JIBitArray();

            Temp._bits = this._bits;
            Temp       = FixLength(Temp, ArrayBound * 8);

            for (int i = 0; i < Temp._bits.Count; i += 8)
            {
                Bits[i / 8] = Convert.ToByte(Temp.SubJIBitArray(i, 8).ToString(), 2);
            }
            return(Bits);
        }
        /// <summary>
        /// Convert current System.Collections.JIBitArray to a short array
        /// </summary>
        /// <returns></returns>
        public short[] GetShorts()
        {
            int ArrayBound = (int)Math.Ceiling((double)this._bits.Count / 16);

            short[]    Bits = new short[ArrayBound];
            JIBitArray Temp = new JIBitArray();

            Temp._bits = this._bits;
            Temp       = FixLength(Temp, ArrayBound * 16);

            for (int i = 0; i < Temp._bits.Count; i += 16)
            {
                Bits[i / 16] = Convert.ToInt16(Temp.SubJIBitArray(i, 16).ToString(), 2);
            }
            return(Bits);
        }
        /// <summary>
        /// Convert current System.Collections.JIBitArray to a int array
        /// </summary>
        /// <returns></returns>
        public int[] GetInt()
        {
            int ArrayBound = (int)Math.Ceiling((double)this._bits.Count / 32);

            int[]      Bits = new int[ArrayBound];
            JIBitArray Temp = new JIBitArray();

            Temp._bits = this._bits;
            Temp       = FixLength(Temp, ArrayBound * 32);

            for (int i = 0; i < Temp._bits.Count; i += 32)
            {
                Bits[i / 32] = Convert.ToInt32(Temp.SubJIBitArray(i, 32).ToString(), 2);
            }
            return(Bits);
        }