Das sind jetzt meine Bitmuster:

Code:
      70        69        68        67        66
k0    000000    000000    000000    000000    000000
k1    100010    100010    100001    100001    100000
k2    010001    010001    010000    010000    010000
k3    001000    001000    001000    000111    000111
k4    000100    000100    000011    000011    000011
k5    000001    000001    000001    000001    000001
k6    000000    000000    000000    000000    000000

      65        64    
k0    000000    000000
k1    100000    011111
k2    010000    001111
k3    000111    000111
k4    000011    000011
k5    000001    000001
k6    000000    000000
Unter 64 wird alles nur noch kleiner.... nur über den Wert lässt sich das Problem also anscheinend nicht lösen...

Ich hab das Problem jetzt übergangsweise gelößt, ist aber alles andere als ne schöne Lösung. Zumindest kann ich jetzt erstmal an anderen Stellen weiterarbeiten.
Code:
int val = (unsigned char)i;
  
  if(254<=val && val<=255)        {return 0;}
  
  if(173<=val && val<=175)        {return 32;}    //K1
  if(57<=val && val<=59)        {return 16;}    //K2
  if(152<=val && val<=154)        {return 8;}        //K3
  if(205<=val && val<=207)        {return 4;}        //K4
  if(236<=val && val<=238)        {return 2;}        //K5
  if(251<=val && val<=253)        {return 1;}        //K6