Tev katrai sūtīšanai vajag jaunu buferi - vismaz vajag pa jaunam sākt rakstīt tajā, nav obligāti jaunu objektu taisīt.
Jā, otrā pusē, lai saņemtu datus, vajadzēs funkcionalitāti, kas bitus nolasīs no bufera, nevis rakstīs tajā (loģiski).
Int skaitlis ar itoa "pārveidots" par čariem ne vienmēr aizņems mazāk vietas.
Skaties:
Code: Select all
int x = 761; // aizņem 4 baitus
storeBits(x, 32); // saglabās buferī 4 baitus = 32 biti
char str[...];
itoa(x, str, 2);
// Tagad str buferī atrodas:
// str[0] = '1';
// str[1] = '0';
// str[2] = '1';
// str[3] = '1';
// str[4] = '1';
// str[5] = '1';
// str[6] = '1';
// str[7] = '0';
// str[8] = '0';
// str[9] = '1';
// str[10] = 0;
11 baiti ir vairāk kā 4, ne?