std::string decode_ascii(char c) { std::string out; out += bin_to_char(c & (3)); out += bin_to_char((c & 12) >> 2); out += bin_to_char((c & 48) >> 4); out += bin_to_char((c & 192) >> 6); return out; }
static t_bit *find_char(t_bit *tmp, unsigned char *str) { while (tmp) { if (tmp->idx > 0 && !(tmp->idx % 8)) { if (!(*str++ = bin_to_char(tmp))) break ; } tmp = tmp->next; } return (tmp); }
static t_str put_in_str(t_bit *bits) { t_bit *tmp; t_str rtn; unsigned char *str; int i; tmp = bits; while (tmp->next) tmp = tmp->next; str = (unsigned char*) safe_malloc(sizeof(unsigned char) * ((tmp->idx + 1) / 8)); rtn.str = str; tmp = find_char(bits, str); i = 0; while (i++ < 7) tmp = tmp->next; rtn.crc8 = bin_to_char(tmp->next); return (rtn); }