Цитата(Xenom0rph @ Jan 30 2009, 20:59)

на МК приходят биты, мне их надо записать в массив, так как их достаточно много, не очень удобно, писать один бит в массив как байт, а сделано так, вот хочу переделать но никогда не работал с битами. И не знаю как их правильно туда помещать.
Задача такая на МК пришел поток 0 и 1. Допустим 1010011010101011, сейчас это занимает 16 байт, но ведь как то можно это в 2 байта уложить, вопрос как? Ну и потом это надо вывести по USART на ПК иопять получить 1010011010101011, но уже как 16 байт!
Ну например можно так с помощью битового поля, так упаковывается один байт:
Код
union input_data
{
unsigned char data;
struct
{
unsigned char in0:1;
unsigned char in1:1;
unsigned char in2:1;
unsigned char in3:1;
unsigned char in4:1;
unsigned char in5:1;
unsigned char in6:1;
unsigned char in7:1;
}byte;
};