public static bool[] decodeArrayBitByBasis(IClassicBit[] data, IClassicBasis basis)
        {
            int total = data.Length;
            bool[] result = new bool[total];

            for (int counter = 0; counter < total; counter++)
            {
                result[counter] = decodeBitByBasis(data[counter], basis);
            }

            return result;
        }
 public static bool decodeBitByUsualBasis(IClassicBit data)
 {
     return decodeBitByBasis(data, ClassicBasisFactory.UsualBasis);
 }
 //static public IClassicString generateString(IClassicString data)
 //{
 //    return new ClassicStringBasic(data);
 //}
 // DECODE
 public static bool decodeBitByBasis(IClassicBit data, IClassicBasis basis)
 {
     data.ReferenceBasis = basis;
     return data.getBit(); ;
 }
 public static bool[] decodeArrayBitByUsualBasis(IClassicBit[] data)
 {
     return decodeArrayBitByBasis(data, ClassicBasisFactory.UsualBasis);
 }
 public static string decodeArrayOfClassicBitAsString(IClassicBit[] data)
 {
     bool[] boolArray = ClassicDatatypeFactory.decodeArrayBitByUsualBasis(data);
     return ArrayTools.BoolArrayToString(boolArray);
 }