Guest User

Untitled

a guest
Jan 13th, 2021
86
13 hours
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static short
  2. transform(short k)
  3. {
  4.         char b[10], c[10];
  5.         int i;
  6.  
  7.         for (i = 0; i < 10; i++) {
  8.                 b[i] = k & 1;
  9.                 k >>= 1;
  10.         }
  11.         if (b[7] != 0)
  12.                 return -1;
  13.  
  14.         /*     9 8 - 6 5 4 3 2 1 0
  15.          * 5 =                   0
  16.          * 3 =             3     0
  17.          * 6 =         5         0
  18.          * 4 = 9 8
  19.          * 8 =       6 5   3
  20.          * 9 = 9     6 5   3
  21.          * 1 = 9     6 5   3   1
  22.          * 2 = 9     6     3 2 1 0
  23.          * 7 = 9 8     5 4   2 1 0
  24.          */
  25.         c[5] = b[0];
  26.         c[3] = b[3] ^ b[0];
  27.         c[6] = b[5] ^ b[0];
  28.         c[4] = b[9] ^ b[8];
  29.         c[8] = b[6] ^ b[5] ^ b[3];
  30.  
  31.         c[9] = b[9] ^ c[8];
  32.         c[1] = b[1] ^ c[9];
  33.         c[2] = b[2] ^ c[6] ^ c[1];
  34.         c[7] = b[4] ^ c[9] ^ c[4] ^ c[2];
  35.  
  36.         k = 0;
  37.         for (i = 9; i > 0; i--) {
  38.                 k |= c[i];
  39.                 k <<= 1;
  40.         }
  41.         return k;
  42. }
  43.  
RAW Paste Data