code: static public void slide(byte[] r, byte[] a) {
          int i;
          int b;
          int k;
  
          for (i = 0; i < 256; ++i) {
              //CONVERT r[i] = 1 & (a[i >> 3] >> (i & 7));
              r[i] = (byte) (1 & (a[i >> 3] >>> (i & 7)));
          }
  
          for (i = 0; i < 256; ++i)
              if (r[i] != 0) {
                  for (b = 1; b <= 6 && i + b < 256; ++b) {
                      if (r[i + b] != 0) {
                          if (r[i] + (r[i + b] << b) <= 15) {
                              r[i] += r[i + b] << b;
                              r[i + b] = 0;
                          } else if (r[i] - (r[i + b] << b) >= -15) {
                              r[i] -= r[i + b] << b;
                              for (k = i + b; k < 256; ++k) {
                                  if (r[k] == 0) {
                                      r[k] = 1;
                                      break;
                                  }
                                  r[k] = 0;
                              }
                          } else
                              break;
                      }
                  }
              }
  
      }
docs: CONVERT #include "ge.h"