Kodieren als C-Routine ...

    private string RS1(string format, int gesamtlänge, string generator)
    {
      string start = format;
      int noch = gesamtlänge - start.Length;
      while (start.Length < gesamtlänge) start = start + "0";
     
      if (start.IndexOf("1") >= 0)
      {
          while (start[0] == '0') start = start.Substring(1);
          // Bestimmung der Format-DatenBits + ECC-Bits:
         
          while (start.Length >= generator.Length)
          {
              string gen = generator;
             
              while (gen.Length < start.Length) gen = gen + "0";
             
              string erg = "";
              for (int i = 0; i < start.Length; i++)
              if (start[i] == gen[i]) erg = erg + "0"; else erg = erg + "1";
              while (erg[0] == '0') erg = erg.Substring(1);
              start = erg;
             
          }
          while (start.Length < noch) start = "0" + start;
          start = format + start;
          return start;
      }
      else return start;
    }



mit z.B. ECLBits = "01" (Level L, s.u.) und maskenBits = "101" (Maske 5) kann man die 15-stellige Formatangabe erzeugen
Der String     ECLBits + maskenBits     muss genau 5 Bits lang sein!
string formatBits = RS1(ECLBits + maskenBits, 15, "10100110111");

ECL-Bits:
Error Correction Level --> 2 ECLBits
      L --> 01
      M --> 00
      Q --> 11
      H --> 10

Die Maske wird als Dualzahl mit 3 Stellen angegeben: 000 bis 111