public static string BinaryDecode(byte[] Data, int Offset, out int NewOffset)
{
int encoding = Data[Offset] >> 6;
switch (encoding)
{
case 0: // 00 - numeric encoding
return BinaryNumericDecode(Data, Offset, out NewOffset);
case 1: // 01 - alpha encoding
return BinaryAlphaDecode(Data, Offset, out NewOffset);
case 2: // 10 - C21 encoding
return BinaryC21Decode(Data, Offset, out NewOffset);
case 3: // 11 - UTF8 encoding
return BinaryUTF8Decode(Data, Offset, out NewOffset);
default:
throw new InvalidOperationException();
}
}