Проблема: Учитывая целое число led в качестве входных данных, создайте набор битов (16 бит) с битами led , установленными в 1. Затем создайте следующую последовательность (предположим, что в этом случае led = 7):
0000000001111111
0000000000111111
0000000001011111
0000000001101111
0000000001110111
0000000001111011
0000000001111101
0000000001111110
Обратите внимание, что это «ноль», который перемещается вправо. Код, который я написал:
void create_mask(int led){
string bitString;
for (int i = 0; i < led; i++){
bitString += "1";
}
bitset<16> bitMap(bitString);
for (int i = led; i >= 0; i--){
bitMap[i] = false;
cout << bitMap << endl;
bitString = "";
for (int j = 0; j < led; j++){
bitString += "1";
}
bitMap = bitset<16> (bitString);
}
}
Мне не нравится вложенный l oop, где я устанавливаю каждый бит в 0. Я думаю, что это можно было бы улучшить с меньшей сложностью.