fq.c   [plain text]


expand_to_ascii (int *i, int *o)
{
  unsigned x, y, out;
  unsigned x1;

  /* Big endian code.  */

  x = *i++;

  y = x >> (32 - 13);
  out = (y / 91);
  out = (out << 8) | (y % 91);

  x <<= 13;
  y = x >> (32 - 13);
  out = (out << 8) | (y / 91);
  out = (out << 8) | (y % 91);

  *o++ = out + 0x20202020;

  /* 6 bits left in x.  */

  x1 = *i++;
  x = (x << 26) | (x1 >> 6);
}