ЛА
Людмила Антонова

С++ битовые операции

Подскажите пожалуйста как работает цикл в данном коде:
int _tmain(int argc, _TCHAR* argv[])
{

std::vector v;
v.push_back(0);
v.push_back(1);
v.push_back(1);
char byte = 0;
for(int i = 0; i < v.size(); ++i)
{
if(v.at(i))
byte |= 1 << i;
}
std::cout << (int)byte << endl;

system("pause");
return 0;
}

Вера Мельник
Вера Мельник

выставляет единички в двоичной записи числа на тех местах, где в соответствующем элементе вектора не 0.
например, вектор 3, 0, 2 даст 101(2) = 5
вот только если в векторе больше 8 элементов - веселуха начнется

Похожие вопросы
Каким образом можно реализовать битовый сдвиг влево для длинной арифметики? Чтобы было быстро)
Операции над множествами
битовые поля с++ в чем ошибка?
какой комп лучше? 32-битовый или 64-битовый? и ваще что это такое?
проблема текста А. Битова?
c++ битовые операции
Здравствуйте! Не могу понять логику битовых операций. Помогите пожалуйста!!!
какова битовая глубина цветов
Можно ли в С++ индексировать битовое поле? Как?
Помогите решить задачу на битовый сдвиг для С++