               r[k++] = d | (self.s << (self.DB - p));
            while (i >= 0) {
                if (p < 8) {
                    d = (self[i] & ((1 << p) - 1)) << (8 - p);
                    d |= self[--i] >> (p += self.DB - 8);
                }
                else {
                    d = (self[i] >> (p -= 8)) & 0xff;
                    if (p <= 0) {
                        p += self.DB;
                        --i;
                    }
                }
                if ((d & 0x80) != 0) d |= 