有一些数组
bitset<8> BIN_BROADCAST[4] = {}; // пустой
bitset<8> BIN_REZ[4] = {}; // тут {10000010 00000100 01100100 00000000}
您需要用 1 替换最后 10 个零。我尝试了几个实现选项,但没有任何合理的结果,这是我的最后一个解决方案(在我看来是最合乎逻辑的),但它在构建器中调用external exception eefface
bitset<8> BIN_HOST[1] = {}; // кол-во нулей для замены
int KOL_NULL = 0;
for(int i = 4; i > 0; i--){
for(int j = 8; j > 0; j--){
BIN_BROADCAST[i][j] = BIN_REZ[i][j].flip();
KOL_NULL += 1;
if(KOL_NULL == BIN_HOST[0].to_ulong()){
break;
}
}
break;
}
for (int i = 0; i < 4; i++) {
Memo1 ->Lines ->Add(BIN_BROADCAST[i].to_ulong());
}
就个人而言,我对这项任务的看法不是将所有内容存储在数组中,而是存储在 bitset<32> 中。
要将位从位置 a 更改到位置 b,最基本的事情是经过一个循环并在那里拉一次翻转。
这是一个最小的代码示例。
至少而不是
必要的
但总的来说,您需要重做所有事情。位图数组出乎意料...